Slashdot Mirror


IBM Releases Open Source EGL Development Tools

New submitter dd1968 writes "Today IBM announced the release of a new set of Open Source development tools based on their EGL programming language. The announcement describes the tools as being built from the ground up on an 'open, extensible compiler and generator framework.' The one-language approach places an abstraction layer between the developer and target languages, frameworks, and runtime platforms."

50 comments

  1. Not EGL. by GenP · · Score: 4, Informative

    Not that EGL, nothing to see here, move along.

    1. Re:Not EGL. by Hobart · · Score: 1

      Also, not that EGL, nothing to see here, move along weeaboo.

      --
      o/~ Join us now and share the software ...
  2. Interesting by msobkow · · Score: 2

    I'll have to check this software lineup in more detail and see if I have competition for my code manufacturing approach. I use expert-systems techniques to "compile" an enhanced ERD/object model that is not based on UML into the object-relational-mapping code (currently focusing on Java, though I did do an earlier variant with C# as well.)

    But I'm not trying to prove a be-all solution with my work, I'm just trying to automate the grunt work and leave the business logic and user interfacing up to skilled developers.

    Check out http://msscodefactory.sourceforge.net/ if you're curious. I'm debugging the latest version of the PostgreSQL DbIO code right now, and should have that done by Monday. After that I can start doing the "forks" of the PostgreSQL DbIOs for other databases.

    --
    I do not fail; I succeed at finding out what does not work.
  3. EGL by hawguy · · Score: 4, Informative

    Would it really be that hard to put a brief summary of what EGL is in the summary?

    http://en.wikipedia.org/wiki/EGL_(programming_language)

    EGL (Enterprise Generation Language) is a high level, modern business oriented programming language, designed by IBM to be platform independent. EGL is similar in syntax to other common languages so it can be learned by application developers with similar previous programming background. EGL application development abstractions shield programmers from the technical interfaces of systems and middleware allowing them to focus on building business functionality. EGL applications and services are written, tested and debugged at the EGL source level, and once they are satisfactorily functionally tested they can be compiled into COBOL, Java, or JavaScript code to support deployment of business applications that can run in any of the following environments:

    1. Re:EGL by binarylarry · · Score: 5, Funny

      Yay it looks like Java, Cobol and VB had a baby!

      Rosemary's baby infact!

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:EGL by drinkypoo · · Score: 1

      Great, now they just have to find a way to make it dependent on CORBA and they can really kill it before it lives.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:EGL by ConceptJunkie · · Score: 1

      You must be new here or you'd know the answer is "Yes".

      --
      You are in a maze of twisty little passages, all alike.
  4. Why? by Galestar · · Score: 2

    Enterprise/Systems: Java, C#, C++, C
    Web: the above + PHP/Ruby/Javascript
    Scripting: the above + Python

    Why do we need another language? From a cursory look over EGL it does not appear to offer anything these don't.

    --
    AccountKiller
    1. Re:Why? by Anonymous Coward · · Score: 0

      There is always a push to specialize languages into what they can describe best, and another push to incorporate languages into one that is suitable for all uses. All purpose languages tend not to be in practice, and have little following. Maybe this will do better than all the old ones, or maybe it will be "ADA 2.1, now with intigrated HTML."

    2. Re:Why? by the+linux+geek · · Score: 4, Insightful

      Why create C? We already had FORTRAN, COBOL, ALGOL, Lisp, and PL/I.

      Why create C++? We already had C, Smalltalk. and ObjectPascal.

      Why create Java? We already had C++, Eiffel, and Objective-C.

      Why create C#? We already had VB, C++, and Java.

    3. Re:Why? by CannonballHead · · Score: 1

      It creates jobs! ;)

    4. Re:Why? by bth · · Score: 1

      Note from the history at http://www.ibm.com/developerworks/rational/library/04/r-3190/the_role_of_enterprise_generation_language.pdf, the origin of EGL (once called 4GL) goes back to the 1980s.

    5. Re:Why? by Galestar · · Score: 1

      Why? Because they are better languages that have power/flexibility their predecessors did not. This EGL does not seem to have any benefit. Not exactly "Insightful".

      --
      AccountKiller
    6. Re:Why? by Anonymous Coward · · Score: 0

      Why create Delphi? We already had Pascal, Modula 2, Oberon and Turbo Pascal.

      Why create C? We already had the B Computer Programming Language. (If anyone knows about this language you might like to help out wikipedia.)

    7. Re:Why? by alexo · · Score: 3, Insightful

      Why create C#? We already had VB, C++, and Java.

      Precisely because we had Java.

    8. Re:Why? by Anonymous Coward · · Score: 0

      Sadly, I have used it before and it is as big and ugly like Eddie Murphy in a fat costume.

    9. Re:Why? by jrumney · · Score: 1

      Why create ObjectPascal (1985/1986)? We already had C (1969/1973), Smalltalk (1972/1980). and C++ (1979/1985).

      FTFY. Dates are date work first started on the language, and the date it was released to the public.

    10. Re:Why? by Rolman · · Score: 1

      I get your point, yes. But... Why create PHP?

      --
      - Otaku no naka no otaku, otaking da!!!
    11. Re:Why? by justforgetme · · Score: 2

      so there will be another Jobs now?
      Noooooooo... sadface

      --
      -- no sig today
    12. Re:Why? by justforgetme · · Score: 1

      because whitespace made my eyes bleed

      --
      -- no sig today
    13. Re:Why? by Anonymous Coward · · Score: 0

      C# cause I trust Microsoft to do a better job then Sun (now Oracle).
      Java cause I am to lazy to learn C++, Java i the answer to "Visual Basic + OOP"
      C++ cause I want to abstract away things, there is so many lines of code to write if I use C
      C cause I want to be able to mix high level and low level programming, Fortran, Lisp (and I expect COBOL, ALGOL, PL/I) was all high level languages.

      Actually as a Developer I am more interested in learning Fortran and Lisp then I am to learn the next super high level language out there.
      I know I am swimming against the stream, but, only dead fish follows the stream anyhow :-)

    14. Re:Why? by Glock27 · · Score: 2

      Why create C#? We already had VB, C++, and Java.

      Precisely because we had Java.

      C# and the CLR runtime brought very little to the table that Java already didn't. The Base Class Library (BCL) for the CLR shows that imitation of Java is the sincerest form of flattery. Scala, running on the JVM, leapfrogs C# nicely in almost all respects.

      It's worth noting that Microsoft, in its typical schizophrenic fashion, has backed away from .Net for Win 8 development, and instead is pushing HTML 5 and Javascript, of all things. Meanwhile, Java and other JVM hosted languages are seeing steadily increasing use solving real-world problems. Android is the most recent Java based environment to attract tons of developers.

      The basic value proposition of Java and the JVM, true portability, endures.

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    15. Re:Why? by Anonymous Coward · · Score: 0

      That's one of the primary values of EGL - it extends Java and JavaScript. In some ways it's like Prototype; it provides a higher level framework for Java that is geared towards business applicaiton development. In particular, the focus on a single syntax for all the tiers of a multi-tiered application combined with the use of the Record as a basic unit of information passed between layers provides business programmers a simplified environment in which to code rich UI applications. Almost as important are the WYSIWYG design tools and a data-driven UI definition language that can be easily extended by the programmer. And unlike omst 4GL languages, EGL is designed to be extended. It's quite easy to build your own parts that directly access custom Java or JavaScript, and the goal of the open source project is to allow third parties to build their own generators to conceivably generate code other than Java or JavaScript.

      Really, it's more than just another 4GL.

    16. Re:Why? by ConceptJunkie · · Score: 1

      In other words, it's like everything else in the software world that has the word "Enterprise" in it.

      --
      You are in a maze of twisty little passages, all alike.
    17. Re:Why? by badkarmadayaccount · · Score: 1

      Frankly I think you are right on all counts. The languages on the left are useless. The ones on the right sadly didn't make it despite technical superiority.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  5. Make that _very_ interesting by msobkow · · Score: 3, Interesting

    They've taken a completely different approach to code production than I do, but it still seems pretty powerful. I think most of what they've accomplished is a clean, elegant variation on good old C pre-processor macros, but restricted so it's a lot harder to hang yourself when writing such code expansions.

    It seems to borrow a fair bit from the concept of annotations and UML stereotyping for it's expansion arguments, rather than inspecting a business application model for that information.

    It's definitely competition for the grunt code market, but I think my approach requires less work on the part of business modellers, while IBM's approach is probably more comfortable for coders than modellers.

    Either way, I'm going to have to hurry up with coding a GUI for this beast so people can use it without groking raw XML.

    --
    I do not fail; I succeed at finding out what does not work.
  6. I am vomitting by JonySuede · · Score: 1

    This is awful, it like the worst of java with the "best" of cobol and a bit of peoplecode.....

    --
    Jehovah be praised, Oracle was not selected
    1. Re:I am vomitting by gbjbaanb · · Score: 1

      exactly, I never see the point of a 'higher level" language that compiles down to java. Now, if it went to C then we might have a good reason for using it - all the benefits of fast, raw C but created from a simple-to-build language that simplifies many common constructs.

    2. Re:I am vomitting by badkarmadayaccount · · Score: 1

      Haskell is a more reasonable code generation target - it has a nice optimizing compiler and implements a decent runtime, plus C FFI, plus recognizable errors, plus portability between compilers, without sacrificing features.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  7. IBM has outdone themselves! by Cyberax · · Score: 1

    IBM has outdone themselves! They managed to create a language that combines the worst parts of Java, C aaaaand COBOL!

  8. is that anything like programming? by Anonymous Coward · · Score: 0

    ". I use expert-systems techniques to "compile" an enhanced ERD/object model that is not based on UML into the object-relational-mapping code (currently focusing on Java, though I did do an earlier variant with C#"

    my 'software lineup' is called "text editor + python".

    i use my 'software lineup' to 'write' things called 'programs' than 'run' on 'computers'.

  9. But why should I care? by mattpalmer1086 · · Score: 4, Insightful

    I just read through your whole site, but I have no idea what MSS Code Factory is, what problems it solves, what it would do for me or why I would want it. I get that it generates code from a model using a bunch of rules, much faster than a human could type it - but that is rarely the critical problem in writing code.

    Now, I've worked with various code generators and high level modelling tools for decades, and none of them have been worth the effort so far. The effort involved in learning the system, working around the inevitable bugs in it (usually involving having to keep patching the output again and again as the model evolves), and interfacing with the bits the model can't handle just make them an exercise in frustration. It's a bit like the old regular expression joke.

    I'm not saying yours is the same; for all I know it's totally awesome and doesn't suffer from the same problems as all the other ones I've had to deal with - but you are so into your own project that you've forgotten how to explain why anyone else should care.

    Take a small step back, put yourself in our shoes, and tell us why we need it.

    1. Re:But why should I care? by msobkow · · Score: 1

      In a nutshell, one of the big problems that has always faced cross-platform product development is vendor lock in. I provide an abstraction Object-Relational-Mapping architecture that defines the interface to the database, and then implements each database interface using custom code. So unless you have very specific query needs that have to be hand coded through the BL (Business Logic) layers of the manufactured code, you neither see nor touch actual SQL.

      All strings passed to the database are encoded using the vendor's string escape syntax, preventing SQL injection attacks if you use my manufactured API and don't write custom code to bypass that protection. As SQL injections are one of the most common attacks out there for client-server, web, and messaging/transaction processing environments, it's something that needed to be solved at the foundation layer of the programming interface to the database, not something that you want to count on every individual programmer remembering or knowing to do.

      Simple field validations are done long before the database is hit with an INSERT or UPDATE statement, supporting what is known as a "fast fail" exception model. So although the database will check field ranges again to verify data integrity, you don't clog the database with requests that you should already know are going to fail.

      The object inheritance model of the Business Application Models is a single-inheritance tree, the same as Java and C#. I could model multiple inheritance for C++, but that would negate the cross-language idealism I have. The future C++ version of the architecture will use multiple inheritance for it's implementation instead of hiding the inheritance via interface specifications, but the model that defines the application will not.

      I do plan on doing a scripting language using the CFCore bindings as well, but I'm far from ready to start working on that. It's just another set of XML nodes in the object model to parse with the tool, and won't be a significant challenge to implement. It's just going to take another year or so before I have time for that, as I'll be focusing on getting the DbIO implementations for the different major databases done first.

      You might also want to read the project's Roadmap page, it goes through a few other long-term future goals as well. Shorter term goals are in the "Up Next" page.

      I hope this explanation helps. Sorry that I'm not always good at explaining complex subjects; I assume a lot of knowledge on the part of the reader to match my near 30 years of programming experience, and that really isn't a realistic way of viewing the audience.

      --
      I do not fail; I succeed at finding out what does not work.
    2. Re:But why should I care? by mattpalmer1086 · · Score: 1

      OK, I can grok that, thanks for taking the time to explain. Understanding what problem is being solved goes a very long way to making the rest of it comprehensible.

      I've been programming about the same amount of time as you, and I can't claim to be much better at explaining my own technologies. :)

  10. It's yet another 4GL, nothing to see... by Anonymous Coward · · Score: 3, Informative

    It's yet another 4GL and they're nothing new. Most programmers here know about languages that are 3GL (Python, Java, C, C#, Clojure, Lisp, whatever, they're all 3GLs).

    I started working using 2GL: manually entering opcode into the machine but I digress.

    4GLs exists since a long time. This "EGL" is just a new enterprise (read bloated, inneficient and solving the wrong problems) 4GL. IBM here is creating a new language to bill more $IBM-consulting/hours.

    Don't feel threatened: it will be used exactly the same way other 4GLs are.

    1. Re:It's yet another 4GL, nothing to see... by jrumney · · Score: 1

      Don't feel threatened: it will be used exactly the same way other 4GLs are.

      ie. to get data out of obsolete big-iron databases and display it on green screen TN3270 terminals.

    2. Re:It's yet another 4GL, nothing to see... by Anonymous Coward · · Score: 0

      You forgot the lexicon, folks. It's for leveraging existing infrastructure. (I.E. justifying your continued six figure annual payments to IBM).

      W

    3. Re:It's yet another 4GL, nothing to see... by Anonymous Coward · · Score: 0

      Or 5250

    4. Re:It's yet another 4GL, nothing to see... by Anonymous Coward · · Score: 0

      Wow, the ignorance displayed by neckbeards in this thread is astounding. It's true, /. is a hollow shell of it's former self.

    5. Re:It's yet another 4GL, nothing to see... by Anonymous Coward · · Score: 0

      You know you are getting old when you make "I remember when..." comments. :)

    6. Re:It's yet another 4GL, nothing to see... by esimone928 · · Score: 1

      Code debates are boring folks. Use what works. We have been using EGL for over 4 years with large enterprise customers and it does a great job of bridging the gap between older technologies (COBOL, RPG, Java, VSAM, 3270, 5250) and the web 2.0 world. It interfaces nicely with Java and Javascript so you can freely decide how much to do in EGL, Java or Javascript depending on your needs.

      Syntax is syntax. Any coder can pick this language and tooling up.

      -- eric

  11. IBM giveaway: One day only! by Anonymous Coward · · Score: 0

    Free 128 Petabyte RAM extension sidekick with striking 'Eclipse' logo on it!

  12. what by justforgetme · · Score: 1

    regular expression joke?

    --
    -- no sig today
    1. Re:what by mattpalmer1086 · · Score: 1

      Sorry - just like the OP I'm assuming everyone knows what I know! It's a common problem...

      "Some people, when confronted with a problem, think
      “I know, I'll use regular expressions.” Now they have two problems."

      http://regex.info/blog/2006-09-15/247

  13. Re:It's yet another 4Exactly GL, nothing to see... by Almahtar · · Score: 1

    If it'll be used exactly the same as other 4th generation languages, then be threatened: SQL is 4th gen...

  14. RichUI makes it interesting by Anonymous Coward · · Score: 0

    I've read about EGL in the past and its the RichUI stuff that makes it interesting to me. With all the JS frameworks to make mobile and web 2.0 look decent or native maybe this gives me some abstraction to all that noise. IBM gave me eclipse (which i love), EGL has been around for awhile. Ill try it out...