Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

IBM Releases Open Source EGL Development Tools

timothy posted more than 2 years ago | from the egl-has-landed dept.

IBM 50

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."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered


Slashdot! I ask you! (-1)

Anonymous Coward | more than 2 years ago | (#38308906)

Ohhhhhhhh, Jesuuuuuuuuus, caaaaaan yooooooou seeeeeeeeeee... what's insiiiiiiiiiiiiiiiide myyyyyy underweeeeeeeeeeeeeeeeeear?

I've always wondered whether or not Jesus can spy on my ass.

Interesting (2)

msobkow (48369) | more than 2 years ago | (#38308918)

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/ [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.

Make that _very_ interesting (3, Interesting)

msobkow (48369) | more than 2 years ago | (#38309144)

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.

is that anything like programming? (0)

Anonymous Coward | more than 2 years ago | (#38309590)

". 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'.

But why should I care? (4, Insightful)

mattpalmer1086 (707360) | more than 2 years ago | (#38309788)

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.

Re:But why should I care? (1)

msobkow (48369) | more than 2 years ago | (#38321386)

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.

Re:But why should I care? (1)

mattpalmer1086 (707360) | more than 2 years ago | (#38325784)

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. :)

EGL (4, Informative)

hawguy (1600213) | more than 2 years ago | (#38308958)

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) [wikipedia.org]

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:

Re:EGL (5, Funny)

binarylarry (1338699) | more than 2 years ago | (#38309020)

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

Rosemary's baby infact!

Re:EGL (-1)

Anonymous Coward | more than 2 years ago | (#38309066)

Much in the same way that faggots eat the shit out of other faggot asses. Those dirty bird faggots are always up to no good.

Re:EGL (1)

drinkypoo (153816) | more than 2 years ago | (#38312652)

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

Why? (2)

Galestar (1473827) | more than 2 years ago | (#38309034)

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.

Re:Why? (0)

Anonymous Coward | more than 2 years ago | (#38309426)

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."

Re:Why? (4, Insightful)

the linux geek (799780) | more than 2 years ago | (#38309474)

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.

Re:Why? (1)

bth (635955) | more than 2 years ago | (#38309592)

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

Re:Why? (0)

Anonymous Coward | more than 2 years ago | (#38310732)

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

Re:Why? (1)

Galestar (1473827) | more than 2 years ago | (#38309856)

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".

Re:Why? (0)

Anonymous Coward | more than 2 years ago | (#38309992)

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.)

Re:Why? (3, Insightful)

alexo (9335) | more than 2 years ago | (#38310026)

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

Precisely because we had Java.

Re:Why? (2)

Glock27 (446276) | more than 2 years ago | (#38314178)

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.

Re:Why? (0)

Anonymous Coward | more than 2 years ago | (#38318502)

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.

Re:Why? (1)

jrumney (197329) | more than 2 years ago | (#38310756)

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.

Re:Why? (0)

Anonymous Coward | more than 2 years ago | (#38312842)

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 :-)

Re:Why? (1)

badkarmadayaccount (1346167) | more than 2 years ago | (#38407844)

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 am vomitting (1)

JonySuede (1908576) | more than 2 years ago | (#38309368)

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

Re:I am vomitting (1)

gbjbaanb (229885) | more than 2 years ago | (#38314612)

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.

Re:I am vomitting (1)

badkarmadayaccount (1346167) | more than 2 years ago | (#38407858)

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.

IBM has outdone themselves! (1)

Cyberax (705495) | more than 2 years ago | (#38309574)

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

It's yet another 4GL, nothing to see... (3, Informative)

Anonymous Coward | more than 2 years ago | (#38309914)

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.

Re:It's yet another 4GL, nothing to see... (1)

jrumney (197329) | more than 2 years ago | (#38310856)

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.

Re:It's yet another 4GL, nothing to see... (0)

Anonymous Coward | more than 2 years ago | (#38311164)

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


Re:It's yet another 4GL, nothing to see... (0)

Anonymous Coward | more than 2 years ago | (#38313822)

Or 5250

Re:It's yet another 4GL, nothing to see... (0)

Anonymous Coward | more than 2 years ago | (#38314230)

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

Re:It's yet another 4GL, nothing to see... (0)

Anonymous Coward | more than 2 years ago | (#38315762)

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

Re:It's yet another 4Exactly GL, nothing to see... (1)

Almahtar (991773) | more than 2 years ago | (#38316384)

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

Re:It's yet another 4GL, nothing to see... (1)

esimone928 (1971748) | more than 2 years ago | (#38318010)

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

IBM giveaway: One day only! (0)

Anonymous Coward | more than 2 years ago | (#38312118)

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

RichUI makes it interesting (0)

Anonymous Coward | more than 2 years ago | (#38317884)

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...

Check for New Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account