On Apr 20, 2017, at 10:23 PM, David Adams wrote: > Tim, I finally said "what the heck" and am giving my blunt opinions below. > Don't take the torrent as directed at you. I think that you made an > intelligent and high-level argument. I mean, you're wrong, but at I don't > hold that against you ;-) That's not an ironic smiley face...I grew up in > schools where the whole class period might be spent fighting about stuff. > They thought it was good for us. In a way, it was...in another way, not so > much.
Just before I clicked “Send” on my post I thought “this is probably gonna crawl under David’s skin, I can’t wait to read his reply”. You certainly did not disappoint. :) And that is a smiley face because I was smiling the entire time I was reading it. I’m a glass is 1/2 full kind of guy and try to not dwell on the things i don’t have. With 26 years of making a living doing 4D work, I really don’t have much to complain about. > Thanks for the confirmation. This makes 4D components pretty much a > non-starter for me. I can see how if you know this (and the other) > restrictions in mind, you could do an okay job. As an example, Cannon's > Obj_ module isn't a component, but I just compiled it to one and, so far, > it seems fine. Current 4D components are a good fit for some things and a horrible fit for others. And the only way to find out is to try out your idea. That’s what I’ve done. I’ve been about 50% successful on my component projects. Half turned out to be a success and I was happy with the end result. Half I had to abandon and never finished. I just couldn’t make it work. But I learned a lot by trying different things and learning what the limits are. Now if I have an idea for a component I have a sense of “I can make this into a component" or "this is going to be a problem to make as a component”. > Man, wouldn't it be nice if you had a structure defining, oh, let's say a > process setup: > > $customers := New(ProcessSetup) > $customers.name := "Customers" > $customers.table := ->MyBigArrayOfStuff > $customers.max_rows := 100 > > ...and then the 4D compiler kicks back the obvious error: > > $customers.table points to an array instead of a table. > > So much easier and better than what we have today. Despite using dots, > that's not an object. It's a typed data structure. We need it, we've always > needed it, and it's easier than what we've got now. > > And again, I'm not asking for 4D to do a completely new language. No > thanks, we have a zillion modern languages to choose from. I'm asking for a > sensible evolution of the language: > > * Data structures that were in Pascal back when 4D was a baby. > * Exception handling like any sensible language. > > Those two alone would help improve quality by huge, huge amounts. I totally agree with this. Adding support for Pascal type record structures would be so useful. 4D should have done it a long time ago. I was hoping the new C_OBJECT variable type would provide that functionality. But it falls short in that it lacks strong typing of the record structure items. We really need a new C_STRUCTURE variable type. Maybe it could be based on C_OBJECT internally but with the addition of typing that the compiler could use. Throw in a try/catch control structure for exception handling and my glass goes from 1/2 full to 3/4 full! But alas they have neglected improving the language. It’s just not a priority for them now. > Sure, but that doesn't mean that they came up with a great solution, albeit > perhaps the best they could. Given how various features have been > implemented in the past few years, I don't get the impression they've got a > language guy on the team. They're a special breed and a bit rare. I never > hear anything out of France that sounds like they've been thinking about > the language itself. I think you are right about that. If they would hire a “language” guy that would make a big difference. They wanted to support XML so they hired a guy to do that. They wanted to support SQL, so they got a guy for that. If they are going to update the 4D language — and the compiler to support it — they need to hire a language guy for that. > Yes, a linker. That's what's needed. Otherwise, it leaves us with not so > many great choices. If they did the linker, we would all benefit. Linkers > aren't exactly a modern tool - there's plenty of existing art out there. Too bad David Hemmo — Mr. 4D Compiler — is working at Apple now. Now there’s a guy who could write an awesome 4D linker. Tim ******************************************** Tim Nevels Innovative Solutions 785-749-3444 timnev...@mac.com ******************************************** ********************************************************************** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **********************************************************************