4GL vs. dotNet



  •  Hi,

    We use both an old 4GL tools and dotNet here at work. The culture lean towards using the 4GL, and dotNet is used only to do distribuated or mobile stuff . I don't manage to have fun working with the 4GL tool. I try to be open minded and find the 4GL tool cool but it would help if someone could advocate for using 4GL for new projects in 2008?  (or advocate for not doing it)

    Dom 



  • I know a company who uses Encompix, and it is written in 4GL on Progess.

    It is a steaming pile of fecal matter.

     

    I am not asserting that that makes 4GL anything, just thought I would vent on that.

     

    Seriously. One big, retarded pile of shit.



  •  4GLs (yes, there's more then one of them) were a hot thing back in the early 90s. I don't know which 4GL your company is using, but well, in some cases they are probably just the right tool to do the job quick and easy. The tight integration of 4GLs with the database can save a lot of work and/or generated stuff (compared to java or .net), but as far as I can tell, LINQ allows the same for C# 3.0 etc., so you might consider that advantage relatively unimportant now.



  • Hi AmmoQ,

    It is often the right tools to do the job for us if the goal is to deliver quickly, especally with the huge code base that is existing. But:

    • The editor is not much better than notepad
    • The language is ... special and doesn't have the basic datastructures (like arrays and loop) but uses home-made technics
    • debugging is a pain in the neck
    • It pushes to copy-paste
    • It is misused to do every thing

    Thank you for pointing out that LINQ for .NET3.0 could compete it out :-) I might use some time looking at it. The ORM we are using with dotNet is actually doing a lot  for us.

    A point where the 4GL tool beat dotnet is that it gives an application framework (MDI) witch manages menu, (some kind of) security. I took a look at Netbeans and Eclipse Rich Client Platform that offer the same kind of functionnality but I couldn't find anything useful in the dotNet world.

    Dom 



  • @dom said:

    A point where the 4GL tool beat dotnet is that it gives an application framework (MDI) witch manages menu, (some kind of) security. I took a look at Netbeans and Eclipse Rich Client Platform that offer the same kind of functionnality but I couldn't find anything useful in the dotNet world.
     

    Are you just trying to make an MDI?

    Making a MDI in .NET isn't hard... Or am I missing your point?



  • @MasterPlanSoftware said:

    @dom said:

    A point where the 4GL tool beat dotnet is that it gives an application framework (MDI) witch manages menu, (some kind of) security. I took a look at Netbeans and Eclipse Rich Client Platform that offer the same kind of functionnality but I couldn't find anything useful in the dotNet world.
     

    Are you just trying to make an MDI?

    Making a MDI in .NET isn't hard... Or am I missing your point?

     

    It's hard to tell, but I think he's saying that 4GL has a GUI editor?  Because there's just NONE of those for .NET... 



  • @bstorer said:

    It's hard to tell, but I think he's saying that 4GL has a GUI editor?  Because there's just NONE of those for .NET... 

    Haha. Yeah, I can't figure out what he is talking about, but whatever it is, I would highly doubt it is not present in .NET.



  • ok I might need to elaborat... all I risk is to confirm that I am a moron :)
    In dotNet you have a GUI-editor, it is easy to build a MDI interface. It is actually pretty easy to build an app where the user can choose between MDI or tab-Based. Incredible but I am aware of the possibilities of the user-controls and actually use them :)
    What I meant is that a 4GL tool (at least the one I know) offers a lot of the plumbing you need to register entry in menus, opening menu to specific-users og group of users, bind modules together and you get a consistent UI with systemwide short-cuts (even if it sucks). I.e. you get a lot for free or actually you don´t get it, you must leave with it because it is like an extremely rigid framework. With dotNet you can achieve the same and even more but you must design it at least when building a modular application. I think that this is not trivial (ok I am a junior, but I know a bounch of senior developpers that don´t have a clue about how to do that)
    I mean that the 4GL give the same kind of service that you get if you are using the rich application platform from Netbeans or Eclipse in Java if you know them. I am not aware of similar products in dotNet outside the one from C#Develop.
    (ohoh I am trying to defend the old tool.. keep on going maybe I will like it some days)
    Dom




  •  Please. Use it.



  • sorry for the formatting. It looks like the message won't be formatted when using Opera webbrowser to submit a post.



  • same player shoot again (with some manual < br />)
    @dom said:

    ok I might need to elaborat... all I risk is to confirm that I am a moron :)

    In dotNet you have a GUI-editor, it is easy to build a MDI interface. It is actually pretty easy to build an app where the user can choose between MDI or tab-Based. Incredible but I am aware of the possibilities of the user-controls and actually use them :)

    What I meant is that a 4GL tool (at least the one I know) offers a lot of the plumbing you need to register entry in menus, opening menu to specific-users og group of users, bind modules together and you get a consistent UI with systemwide short-cuts (even if it sucks). I.e. you get a lot for free or actually you don´t get it, you must leave with it because it is like an extremely rigid framework. With dotNet you can achieve the same and even more but you must design it at least when building a modular application. I think that this is not trivial (ok I am a junior, but I know a bounch of senior developpers that don´t have a clue about how to do that)

    I mean that the 4GL give the same kind of service that you get if you are using the rich application platform from Netbeans or Eclipse in Java if you know them. I am not aware of similar products in dotNet outside the one from C#Develop.

    (ohoh I am trying to defend the old tool.. keep on going maybe I will like it some days)

    Dom


  • ♿ (Parody)

    Can anyone see this? A new post in an old topic!



  • @boomzilla said:

    Can anyone see this? A new post in an old topic!

    Yes. Also auto-tracked for being in a category I have set to tracking.



  • I never heard of 4GL, ever.



  • Fourth generation language. Why are some of the quotes displayed and others broken?



  • @Buddy said:

    Fourth generation language
    Like this? <p> tags seem to break stuff.


  • But only at the very start of a post? (Everything below this is copied verbatim).

    @MasterPlanSoftware said:

    @dom said:

    A point where the 4GL tool beat dotnet is that it gives an application framework (MDI) witch manages menu, (some kind of) security. I took a look at Netbeans and Eclipse Rich Client Platform that offer the same kind of functionnality but I couldn't find anything useful in the dotNet world.
     

    Are you just trying to make an MDI?

    Making a MDI in .NET isn't hard... Or am I missing your point?

     

    It's hard to tell, but I think he's saying that 4GL has a GUI editor?  Because there's just NONE of those for .NET... 



  • @Buddy said:

    Fourth generation language

    Paging @darkmatter


  • :belt_onion:

    oh jesus... this import will take my readerbot a while to finish.
    that is, if they listed as new/unread...
    not sure how i'll read them since they dont.

    also, duckwhores fails at quotes, HRs, and Ps.



  • Is it necessary to read the old posts?


  • :belt_onion:

    is it necessary for me to drink my own urine? no, but it's sterile and i like the taste.

    i am on a crusade against slowly fading blue dots. I must eradicate them all.



  • At the risk of committing yet more necromancy, I should say I'm surprised that no one actually discussed TRWTF of this post: 4GL languages and tools themselves.

    The reason they fell out of favor was simple: they were shit. All of them. The entire premise of fourth-generation languages - that is, giving ordinary users a scripting language that resembled natural language syntactically, and which would (supposedly) have sufficient context sensitivity that they could resolve the ambiguity inherent in something like that - was at best overambitious, and at worst false advertising.

    The idea of having a programming language that looked like plain English to make it easier for the programmer - or for a non-programmer - is one which has come up time and time again, with the 4GL fad of the late 1980s and early 1990s being just one iteration of the idea. The concept was part of the design goals of COBOL, too, and we all know how that turned out (yes, COBOL was a huge success, but for reasons completely unrelated to its syntax, while its eventual demise was largely due to its design deficiencies, of which this part was front and center). It came up again in the mid-1960s and the late 1970s, and every time it fell flat because it promised something it couldn't deliver - a user interface that anyone could work with.

    So far, the closest anyone has come are voice-recognition interfaces such as Siri and Cortana, and those are mostly very elaborate chatterbots with massive recognition databases - and even then, they only really work as a front-end for a limited function (Internet search) where disambiguation techniques were already well established. The real goal of 4GLs probably won't be achievable without hard AI, or a reasonable approximation of it.



  • I should elaborate on this point a bit more, I think. The real problem was not so much the idea of the natural-language user interface - though as I said, that has serious problems, too - as it is the idea that you could write non-trivial programs this way. It is one thing to have a casual interface that could be used for, say, pulling up the latest stock quotes for your company, or queue up a series of songs based on previous play history; it is a whole different matter altogether to use that same casual interface to create software that others will use over a long period of time, and which handles edge cases, exceptional states, exploit attacks, and so forth in a graceful manner.

    It is the same problem that comes up time and time again with tools such a RAD GUI tools, drag and drop web development tools, and suchlike - what works well enough for building a vanity page or a simple two or three window CRUDware application is not enough to carry a more complex project, and in fact becomes actively counter-productive and even hostile when applied to most real-world programming problems. These sorts of things have there place - or at least, they can, if they don't suck (which they usually do) - but they are not suited for general development projects. They are just one part of a continuum of development tools, but too often they are sold as a panacea.



  • A similar thing could be said about the penchant, among some parts of the modern programming world, toward making a DSL for everything. Now, the specific way that DSLs suck might be different than 4GLs' (specifically: A dsl is supposed to be a cut down version of the language, for a specific purpose, yet you pretty much always need a more in-depth understanding of the host language's idiosyncrasies than you would if your code just used that language normally to begin with), but the symptoms are the same. Human language is terrible for programming. If we could get humans speaking an unambiguous language in the first place, we wouldn't even need developers (just coders, right @stevethecynic? Unthinking automatons whose only job is to turn specifications into implementations).



  • Or, an even trolleyer way to say that would be: 4GLs are bad for the same reason lisp is bad. Syntax is the UI of programming. If you let just any old tool define your syntax for you, your projects gonna go to shit, fast.



  • I think people who want to make programming "more natural" are barking up the wrong tree.

    They say "programming is too hard! Let's make it easier! So easy that average users will be able to do it!". In my experience, there are two hard parts about programming:

    1) The logic and algorithms. A computer, deep down, can only move bytes around, all ideas have to be translated to this. And as you said, all attempts to make this "natural" have failed. Because this is almost certainly an AI-complete problem, meaning it requires the kind planning and knowledge that only humans (so far) can do.

    So, unless you're an AI researcher, don't go there. If you want to program anything non-trivial, you need to learn logic and algorithmics. There's no way around that.

    2) The environment. Confusing libraries that make simple tasks difficult, IDEs that crash or are noticeably slow, build and versioning systems that take hours to understand (and are not explicitly targeted only to advanced users), languages from the 70s with GUI and multithreading support awkwardly bolted on top, you get the point.

    Seems like obvious stuff, but I think it's often forgotten. PROGRAMMERS ARE STILL USERS, and all the rules of usability apply to them, so Don't Make Them Think any further than they're required to to make their programs.

    As a person who knows algorithmics and a few programming languages (C, Python, C++ basics) but has never done any "serious" programming, I often find that "real" programming environments have a learning curve that's way too steep, making me learn unnecessary stuff before I can jump to writing the damn code.

    Maybe it's just me being stupid. But I do wonder if there's any First Time User Experiences blog on programming environments.


Log in to reply