Slashdot Mirror


Eclipse Launches New Programming Language

An anonymous reader writes "Eclipse has launched a website for a new JVM language, called Xtend. It's built with Eclipse's Xtext and compiles directly to Java code, similar to what CoffeeScript does to Javascript. It's not just an announcement but it's already there and useable, including a very feature-rich Eclipse integration."

238 comments

  1. Why? by Anonymous Coward · · Score: 0

    Why would anyone need a new programming languages? The ones I know are good enough for everything.

    1. Re:Why? by nepka · · Score: 0

      Exactly, especially when it doesn't really give anything new or have any backing. At least C# comes with wide support, XNA, Xbox360 and Windows Phone 7 development along with Windows platform, and the language is actually hundreds of times better than Java. On top of that .NET runtime is lightweight, especially compared to the bloat that is Java. To be honest, Java needs to die already. Everyone will be better off.

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

      Seems like there is a new programming language every two weeks. As if the other several thousand in existence weren't enough.

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

      "To be honest, Java needs to die already. Everyone will be better off."

      Except those that run a platform that lacks support (either no support or some outdated version).

    4. Re:Why? by rubycodez · · Score: 0

      I'd agree about the java/j2ee, but Microsoft and it's C# need to die too. they serve no good purpose that can't be done better by other languages. I'd never want to give legitimacy, ability to sue, or power to Microsoft by using their tools

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

      Summary isn't 100% clear and I'm too lazy to actually read the article, but which statement is accurate:

      "compiles 'directly' to Java byte-code"

      "compiles to Java source code"

    6. Re:Why? by dotancohen · · Score: 1

      "To be honest, Java needs to die already. Everyone will be better off."

      Except those that run a platform that lacks support (either no support or some outdated version).

      I'm programming in this right now:
      http://www.mono-project.com/Start

      And the IDE is absolutely terrific:
      http://monodevelop.com/

      --
      It is dangerous to be right when the government is wrong.
    7. Re:Why? by dotancohen · · Score: 1

      I'd agree about the java/j2ee, but Microsoft and it's C# need to die too. they serve no good purpose that can't be done better by other languages. I'd never want to give legitimacy, ability to sue, or power to Microsoft by using their tools

      Garbage collection. Forget everything else, garbage collection is the reason that I as a _user_ would prefer that the apps I use are developed in mono or Java.

      As a developer, as soon as Linq is available in C++ I'll start writing my apps in C++. C++ and Qt are no less portable than Java, but everything that is a tedious in C++ is a breeze in C#.

      --
      It is dangerous to be right when the government is wrong.
    8. Re:Why? by dotancohen · · Score: 1

      Seems like there is a new programming language every two weeks. As if the other several thousand in existence weren't enough.

      Yeah, devs should work on inventing a better text editor instead.

      Oh, wait, this is coming out of the people who maintain Eclipse. Maybe the joke isn't so funny after all! Can Eclipse enable line numbers on the fly yet? Or changing text size on the fly? How about simply line wrapping?

      --
      It is dangerous to be right when the government is wrong.
    9. Re:Why? by Vanders · · Score: 1

      There is nothing magical about garbage collection that only the Java or .Net VM's are capable of implementing. GC has a long history, stretching back to languages like LISP and SmallTalk. Hell even C++ has had the Boehm GC available for nearly 20 years.

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

      Garbage collection.

      Smalltalk, Lisp, Python, Ruby, Erlang, etc.

      How is it that Java gets credit for garbage collection, when they were two decades behind Smalltalk and three decades behind Lisp? Did Java do anything that Smalltalk didn't in the 70s? Okay, applets.

    11. Re:Why? by errandum · · Score: 0

      Because not the whole world uses windows and sometimes you need to do something that will run everywhere without needing independent versions.

      Oh, and Android.

    12. Re:Why? by MightyMartian · · Score: 1

      .NET ain't lightweight, and "hundreds of times" better, by what standard? Some rather minor language improvements are essentially crippled by the fact that it's crossplatform capacity is very limited. For all the good Mono does, I might as well just bloody well code in C/C++ with a library like Qt.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    13. Re:Why? by Anonymous Coward · · Score: 0

      Ah, Eclipse... the only IDE I can think of that actually makes Visual Studio feel like greased lightning.

      And in case that wasn't enough, they left out all the best features, made it clunky as hell and, to add insult to injury, made it ugly.

    14. Re:Why? by SplashMyBandit · · Score: 3, Insightful

      You do know that the Java runtime is an order of managitude smaller than the .NET runtime dont you (and that is not even considering that .NET also requires the bulk on Windows while Java does not). In short, your knowledge is severly out of date - you musta been drinking the Microsoft koolaid. Well, here is news for you, .NET will be superceded by another Microsoft product long before people stop using Java (especially in the Enterprise space).

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

      I love open sores trolls.

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

      well, you'd have to kill actual people, like me to stop having more and more Java code around. You are welcome to come and try it.

    17. Re:Why? by unixisc · · Score: 1

      I agree. With everything that's out there - C#, Java, C++, C, gcc, visual studio, there's plenty out there. Almost like the attempt to invent Esperanto.

    18. Re:Why? by HiThere · · Score: 2, Insightful

      Yes. Java was (and is) a lot faster than Smalltalk. Sorry, but that *is* significant.

      Of the languages that you list, only Lisp is faster, or even nearly as fast as, Java. And Lisp is hard to wrap your mind around. (And here I'm assuming that you mean compiled Common Lisp.) Also, in the early years of Java, a free compiler was unusual. Having a language with a free compiler was a real win. That's much less a consideration now, but now that shape of the language landscape has a lot more inertia.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    19. Re:Why? by HiThere · · Score: 1

      There's a big difference between "capable of having a garbage collector implemented" and "comes standard with a garbage collector built in". In the first case the language must be designed with the assumption that a garbage collector is likely to not be available. So don't count the Boehm GC, or even Ada's. (Ada had one before C++ did...but it wasn't required, so it was usually an extra cost option. So code couldn't assume that it would be present.)

      No, there's nothing magical about having a garbage collector. But it eliminates a wide set of errors, and renders feasible languages that presume that objects will come and go. It also strongly encourages that pointers not be used. (Which means that some alternative approach must be adopted.)

      It's not magical, but it's so useful that I hate using languages without it. (Even Vala has implemented a garbage collector as a part of the core language, and it translates all it's code into C for C to compile.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    20. Re:Why? by bcmm · · Score: 1

      wide support, XNA, Xbox360 and Windows Phone 7 development along with Windows platform,

      Do you work for Microsoft?

      --
      # cat /dev/mem | strings | grep -i llama
      Damn, my RAM is full of llamas.
    21. Re:Why? by Anonymous Coward · · Score: 0

      well, you'd have to kill actual people, like me to stop having more and more Java code around. You are welcome to come and try it.

      Ok, where are you? Just kidding. I've been a longtime Delphi programmer and the ability to deploy your executable, and only your executable, to a common share has been invaluable to me. What's that got to do with .NET? Well, I don't have to install on every workstation and there ain't a whole lot of bloat going on. What's it got to do with Java? Again, not much. Just I've not been a fan of .NET. So we do have something in common. (And yes, Delphi is still in use. It's quite functional and you can get all the way down to the asm level if you want....)

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

      A free compiler was unusual? Where? When? I studied programming before Java got lift-off, and free compilers were never an issue on the platforms I worked on.

    23. Re:Why? by M.+Baranczak · · Score: 1

      Are you fucking serious? Clicking the link and reading just a few lines at the top would have answered your question (and would have been much less work than typing this post).

    24. Re:Why? by rubycodez · · Score: 1

      Free compilers have been common since the 1960s. Mainframe vendors gave them away, Unix came with them, there were shareware compilers for the first PCs (encouraged but not required to make donation) for all manner of languages, from assemblers and COBOL and FORTRAN (yes, capitalized originally). Never a lack of free compilers in my lifetime.

    25. Re:Why? by TruthAmongFanboys · · Score: 0

      No implementation of Smalltalk, Lisp, Ruby or Python even comes remotely close to the JVM or the CLR. Out of all of the languages he listed, only Erlang has an implementation that is even in the same league. Are you retards honestly going to compare the JVM or the CLR to SBCL, Ruby MRI or CPython? CPython uses a reference counting garbage collector and isn't even thread safe. Ruby uses a notoriously bad naive mark and sweep garbage collector. Comparing these to the JVM or the CLR is just fucking retarded.

    26. Re:Why? by epyT-R · · Score: 2

      .NET runtime is lightweight? I wouldn't count windows, xbox, and wp7 as 'multiplatform.'

    27. Re:Why? by epyT-R · · Score: 1

      I purposely look for native apps on whatever OS I'm using. they're a lot faster, use a lot less ram and have fewer pointless dependencies to manage. even on modern machines the difference is noticeable.

      as far as memory management and pointer misuse goes, a badly written app will consume mass quantities of ram and/or crash regardless of what it's coded in. the only thing that changes is what the error box says before losing all my data.

    28. Re:Why? by oakgrove · · Score: 1

      Except none of that is actually true. I use vs2010 and Eclipse daily. They are both slow. Vs is better in some ways and eclipse is better in others. You ideologues need to learn to use the tools instead of sitting around bitching.

      --
      The soylentnews experiment has been a dismal failure.
    29. Re:Why? by Megane · · Score: 1

      You forgot the link for Esperanto.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    30. Re:Why? by 0123456 · · Score: 0

      Garbage collection. Forget everything else, garbage collection is the reason that I as a _user_ would prefer that the apps I use are developed in mono or Java.

      So as a _user_ you like applications which suck up gigabytes of memory and randomly pause for several seconds?

      There are a lot of good things about Java vs C++, but garbage collection is not one of them.

    31. Re:Why? by TruthAmongFanboys · · Score: 0

      Compiled Common Lisp with SBCL, which is easily the fastest free implementation, is still significantly slower even if you litter the Common Lisp with type hints and declaims. However, they are both fast enough for most applications, and SBCL is significantly faster than any of the mainline implementations of other popular dynamic languages.

    32. Re:Why? by euroq · · Score: 1

      You sound a little biased there. You apparently enjoy the fact that C# development allows development on some target platforms - Windows, Xbox, etc. C# doesn't work on non-Windows machines. People have tried to make it (i.e. Mono), but you can't run many C# apps on Mono.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    33. Re:Why? by Anonymous Coward · · Score: 0

      Exactly, especially when it doesn't really give anything new or have any backing. At least C# comes with wide support, XNA, Xbox360 and Windows Phone 7 development along with Windows platform, and the language is actually hundreds of times better than Java. On top of that .NET runtime is lightweight, especially compared to the bloat that is Java. To be honest, Java needs to die already. Everyone will be better off.

      You seem pretty ignorant about the true size of .NET. The .NET runtime files are considerably bigger than the Java runtime. Just because .NET has been integrated into Windows does not make its size go away. .NET is a pig and it's gigabytes in size. Perhaps you should scan your Windows OS for all of the .NET shit embedded into it before making such idiotic statements?

      C# seems like an interesting alternative. It's a pity it's been ruined by Microsoft's inability to understand the benefits of cross platform development.

    34. Re:Why? by HiThere · · Score: 1

      Mainframes are, indeed, a very different market. I have no idea what mainframe vendors were doing. When I used a mainframe, I used whatever language the service bureau put on the machine. (The company would occasionally contract for a special language, but that's not something I had any control over.) What this meant to me was that on mainframes I used either Fortran or, occasionally, PL/1.

      Microcomputers I could control, but I had to buy my own languages. Or use basic. I probably bought 30 compilers for various different computers I owned ranging from UCSD Pascal to Lifeboat C. When Java came out with a free compiler, it was a big win. Otherwise I wouldn't even have looked at it. (This was after the company had switched to MSWind95, so I was doing my programming in MSAccessBasic or in Eiffel, because I didn't want to buy another compiler at the time. Java was considerably better than MSAccessBasic...so when I didn't need smooth connection to printing reports from a database, I switched to doing a lot of programming in Java. Linux wasn't yet ready for prime time, and GCC on MSWind was ... difficult. (I also did some things in Squeak smalltalk, but not much. Couldn't lock down the GUI and it was too slow. [Actually, you could lock down the GUI, but only by converting a version of the program into a "locked GUI" version, and you better get everything right, because it's not only the data entry people who now can't change the GUI, neither can you! So keep a backup of every released version....and adding new data makes it a separate release.])

      Now it's true that microcomputer compilers were pretty cheap. The prices I paid ranged from $20 to $200, and there was no relation at all between price and quality. Support, of course, was essentially non-existent. (Hold on to the phone for up to six hours waiting for someone who can understand what you're asking to take your call... YIKE! I didn't have that kind of time. If I couldn't solve the problem it usually meant either try something else, or do it in Basic, because the company could understand that Microsoft support was terrible.)

      Free compilers were a TREMENDOUS win. They let me try something without going through accounting to justify the purchase. Or, more often, paying for it myself.

      These days I don't use anything BUT Linux. Then I had one machine that was recycled because nobody wanted anything that slow to run MSWind on. (This is actually a bit after 1995, but I'm not sure of the exact data. It was before 2000, because that was the one that I read the license on and decided that I couldn't agree to those terms.)

      OTOH, if I remember back to 1970, IBM would LICENSE compilers to you. And not cheaply. (I checked a couple of times.) And there was some reason that UC and LBL wouldn't use the compilers that CDC made for the CDC machines. Cost is a likely reason. (OTOH, they wrote their own compilers...so maybe it was just ego.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    35. Re:Why? by HiThere · · Score: 1

      I'm not an expert myself, but I've been told that for appropriate problems Common Lisp is as fast as C. I believe the person who told me. OTOH, I don't know either what problems you are considering, or what problems they were thinking of. But it seems quite likely that it depends on what you are doing.

      (I've also heard some people claim that Java is faster than C. This can only even possibly be true when there's something strange going on, possibly with cache management. And that isn't something that one can count on. In my observation Java programs are often as slow as Python programs, but this seems to have something to do with the GUI.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    36. Re:Why? by Shoe+Puppet · · Score: 1

      People have tried to make it (i.e. Mono), but you can't run many C# apps on Mono.

      You can't run any C/C++ apps made for Windows on other platforms either.

      --
      (+1, Disagree)
    37. Re:Why? by rubycodez · · Score: 1

      Maybe you spent too much if it was just for hobbyist use.

      IBM had classic compilers and OS they just "threw out there" (no license, just included), you can even legally download (see left menu) them today and run on Hercules emulator on your PC. In the 1980s, there were ms-dos shareware IBM mainframe OS (evolved in Z/OS) and DOS (evolved into Z/VSE)environment emulations that had COBOL and 370 assembler, I wrote and ran there on my PC-AT and uploaded to 4381 when good (and later Amdahl). I did buy Turbo Pascal and Prolog but had free/shareware FORTRAN, C, Pascal, LISP compilers too (now somewhere in a rubbermaid tub on 5.25" disk). those wares are still on the web too.

      By the early 90s, I was mainly on Unix workstations, and used GCC and gas (GNU assembler). So when I did run into Java at new job, I was not surprised to have free compiler (only peeve was that were was no source code)

    38. Re:Why? by Targen · · Score: 1

      I completely agree with your general sentiment, but dude, gedit? Seriously? Why not vim or emacs (or both, to avoid the ridiculous flame war)?

    39. Re:Why? by HiThere · · Score: 1

      We were on service bureaus until sometime in the mid-1970's when the company switched to CP/M. At that point, and for most of the next decade, my professional programming was closely tied into databases and report generation. (When we went into CP/M, one of the main reasons was cost cutting. I maintained a 16 CPU system that ran 16 "independent" computers on top of the same disk drive. This was so that 16 external users could call in to access the database. When we switched to Unix, it was with the same database system on an Altos 386 micro-computer. I had to rewrite the database, because a lot of things changed. Some time in there the company switched to Macintoshes...then slowly switched to MSWind95. I think to save money. I didn't pay too much attention to that, as I was maintaining the Database system, and the computer I had in my office had been a Mac for quite awhile. Eventually the company decided that everyone except graphics had to switch to MSWind. Calling my activities "hobbyist" seems to be misunderstanding things. I had a computer at home that I used and bought things for. The term I used was "professional development".

      Free Java compilers was a big win both at home and at work. It must have been around 1995 (a bit after, but before 1998) that I switched my computers at home AND at work to use MSWind95. I still *have* a MSWind95 computer at home, mainly because some work that my wife did can't be moved to another system. Fortunately it's becoming obsolescent, as nothing new has been created there in the last 9-10 years. But that was when I switched her to a Mac. On the Mac I kept tighter control, and everything that was created there is exportable, if sometimes with lack of precision. (Linux music score editing only became useable by her within the last year and a half. Graphics wasn't good enough until a "fairly recent" edition of Inkscape...though when bit-maps suffice, The Gimp has been used. Animation was the key that opened that door.)

      If you call this "hobbyist", then either you don't understand the situation, or you mean something drastically different with that word than I do. I would have invested *MORE* money, but I don't like spending money on things that only last a short time, and the free (libre) versions became better than the alternatives. (Not saying there aren't commercial versions that are better in certain ways, but how many will allow me to work in a non-proprietary format? Well, compilers, of course. But compilers are only one piece of the environment. For that matter, I said that on the Mac system things could be moved? This often requires saving them in a different format than the format that they are saved to work in. As a result the Mac still has lots of files that *haven't* been moved, even though they can. Changing a Finale score to a portable form, e.g., means drastically decreasing it's usability by Finale. Which includes fine details of how the score is formatted on the page.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    40. Re:Why? by Anonymous Coward · · Score: 0

      Exactly, especially when it doesn't really give anything new or have any backing. At least C# comes with wide support, XNA, Xbox360 and Windows Phone 7 development along with Windows platform, and the language is actually hundreds of times better than Java. On top of that .NET runtime is lightweight, especially compared to the bloat that is Java. To be honest, Java needs to die already. Everyone will be better off.

      About the only thing that needs to die are ignorant people so they can't breed and extend their stupidity to a new generation.

    41. Re:Why? by rubycodez · · Score: 1

      Fascinating stuff! you just made me look up whether GNU/Linux softwares do musicxml, seems some do. Of course, my music composition tools for the 1970s to 1990s was a pencil, eraser and staff-ruled paper. but maybe now that I'm teaching my children we could try some free softwares to make the music lessons more interesting

    42. Re:Why? by badkarmadayaccount · · Score: 1

      Java? Fast? Yes. In comparsion with a decent Smalltalk VM? No. Lisp (scheme dialects included) wiped the foor with them.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    43. Re:Why? by HiThere · · Score: 1

      Checkout Muse or MuseScore. (I think they're two names for the same program.)

      Be warned that not all musicxml used by programs is compatible. I think this is bugs, but it was a problem the last time I tried to use it. And because of lack of features (and because I'm not a musician) I've decided that the next time I'm bounced in that direction I'll try going straight to lillypond. It lets me control the size of the note head and where the score line breaks. (Some score editing programs do one, some the other. I haven't found a Linux program that will let me do both.) I'm thinking of entering the basic score in Nted and then exporting the lillypond text which I'll then edit. But I may just just MuseScore. (N.B.: Several programs claim to import or export musicxml, but test each one, and then test the ones you want to use in combination. The last time I tried, I kept having problems with one program refusing to import the musicxml created by another. Then again, this was over a year ago, and just about everybody's rev'ed their versions since then.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  2. I like it by msobkow · · Score: 2

    I like it. It looks like they've taken the power of C/C++ macros, wrapped it up in a clean simple syntax, and applied it to Java.

    When I first started programming in Java, I was at a loss without my macros. The concept of macros and code expansion are so powerful, but often overlooked because they can be hideously difficult to debug and enhance.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:I like it by msobkow · · Score: 1

      It's interesting to see Java replacing C as the back-end of compilers, though many still prefer the "Assembly" approach of producing JVM byte-code instead.

      --
      I do not fail; I succeed at finding out what does not work.
    2. Re:I like it by nepka · · Score: 2

      The concept of macros and code expansion are so powerful, but often overlooked because they can be hideously difficult to debug and enhance.

      And leads to extremely bad code. Goto has the same thing - it can be extremely powerful, but overusing it leads to really bad code.

    3. Re:I like it by Anonymous Coward · · Score: 0

      It's interesting to see Java replacing C as the back-end of compilers, though many still prefer the "Assembly" approach of producing JVM byte-code instead.

      Damn, when will we see Fortran, Ada and C++ compilers generate code for the JVM ?

    4. Re:I like it by Anonymous Coward · · Score: 2, Interesting

      The concept of Lisp macros and code expansion are so powerful, and they are easier to debug and maintain because they are not merely a matter of replacing strings (rather, the postponing of evaluating a lisp form so that you can modify the language).

    5. Re:I like it by rubycodez · · Score: 1

      Behold the horrors!
      Microfocus COBOL for jvm and j2ee (this possibilty came up with one of my clients but we went a different route): http://visualcobol.microfocus.com/overview/platform/jvm/
      The University of Tennesee's Innovative Computing Laboratory is in the final stage of their F2J project, which will support Fortran 95 language to java bytecode: http://icl.cs.utk.edu/f2j/overview/index.html
      Ada to JVM, read about projects and products here: http://www.adahome.com/Resources/Ada_Java.html
      There was gcc back end to emit jvm bytecode, but RMS killed it because of Sun's Java license at the time. Things have changed since then, maybe that project will be resurrected.

    6. Re:I like it by siride · · Score: 1

      If you use C-style macros. Lisp-style macros are a lot better.

    7. Re:I like it by Anonymous Coward · · Score: 1

      And leads to extremely bad code. Goto has the same thing - it can be extremely powerful, but overusing it leads to really bad code.

      No it doesn't. A well designed macro system like that of lisp or haskell template lets you design nice clean code.
      This is not true of macros in c or c++ where the macro system is either completely featureless or is a perversion of the compiler.
      No matter how well you try to use/design macro code in c++ it will always read like shit and debug like shit. A worthless feature.

    8. Re:I like it by DurendalMac · · Score: 1

      Optional parentheses, optional semicolons...this is a neckbeard flamewar in the making.

    9. Re:I like it by onefriedrice · · Score: 3, Interesting

      And leads to extremely bad code. Goto has the same thing - it can be extremely powerful, but overusing it leads to really bad code.

      It's not so much about overuse. Rather, it's the misuse of macros and gotos (and any other coding construct) that can lead to bad code. Macros and gotos get a bad rap because they get misused more often than other constructs, mostly by those who are really new to programming. When used appropriately, these constructs can make code more readable and easier to maintain. It's too bad that so many students are being taught to avoid gotos at all cost; better to teach them when gotos can be used to good effect.

      --
      This author takes full ownership and responsibility for the unpopular opinions outlined above.
    10. Re:I like it by rubycodez · · Score: 1

      ah yes, here's the old RMS argument (different era of java licensing) http://gcc.gnu.org/ml/gcc/2001-02/msg00895.html

    11. Re:I like it by Paul+Fernhout · · Score: 2

      Me too, for use with the Java ecosystem. They've taken some good ideas from Jython and Smalltalk. I wonder how smooth debugging is though?

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    12. Re:I like it by Paul+Fernhout · · Score: 1

      The problem with languages with macros is that unlike, say, Smalltalk, you generally never know when macros might apply when and so change the meaning of what you are looking at unless you understand the *entire* program...

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    13. Re:I like it by Anonymous Coward · · Score: 0

      Yep. I stopped reading when I saw those on the feature list.

      Those are not features goddammit.

    14. Re:I like it by HiThere · · Score: 1

      Sorry, but it's not just people who are new to programming that use macros to make their code unintelligible. I've known some really foul examples that had been programming professionally for over a decade. I've got to assume that the macros fit in with how they thought about the code, because (well, in at least one case) he could pick up the code 6 months later and still readily understand it. But nobody else could.

      For that matter, back in the days that structured programming was still fighting to get established I used to program (by my choice) in a thing called mortran, which was a thing that allowed you to emit structured Fortran 77 code, but write using while loops, and block structured code (i.e., without using go to statements). The code that was emitted was decent code, but totally unreadable. I could only debug the mortran source. (Not strictly true...sometimes I needed to trace things a far as a core dump...but quite rarely. It was generally easier to debug the source.) That could be considered a way of writing macros. But anyone who tried to maintain the fortran code would surely have been cursing my name.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    15. Re:I like it by Anonymous Coward · · Score: 0

      Template Haskell is more of a proof of concept that barely anyone uses. Outside of a few corner cases in GHC, macros are almost always the wrong choice because we can build new control structures without them and they aren't composable.

      Every expert Lisp programmer knows that functional abstractions should be preferred over syntactic abstractions, and the overuse of macros is almost always an immediate sign that the author is a novice.

    16. Re:I like it by Anonymous Coward · · Score: 0

      I like it. It looks like they've taken the power of C/C++ macros,

      Wait, what? Did you mean the hideousness of C macros?

    17. Re:I like it by msobkow · · Score: 1

      The key power C macros had over any Template-type construct I've seen is that you can actually paste the name of the macro arguments to form unique variable names within the macro. So a single macro could expand to three or four different functions, a handful of variables, etc.

      Yes, people are prone to hanging themselves by abusing macros, but you can do some wicked code simplification that expands inline to maximize performance. I had macros in my library of useful stuff that turned all the declarations and accessors of a "attribute and methods" into a single macro invocation. It was hard to debug them initially, but I used them for years afterwards without problems.

      --
      I do not fail; I succeed at finding out what does not work.
    18. Re:I like it by bhlowe · · Score: 1

      I'm guessing the compiler/editor is smart enough to let you hit "code format" and the missing parens and semicolons will appear or disappear to your liking. I am interested in giving it a try.. even if I just use it as a short-hand to create java code. The fewer keystrokes per day, the better.. I'm a fan of Eclipse---but haven't even looked at using anything else for java coding. I don't miss those yearly $500+ compiler updates!

    19. Re:I like it by aled · · Score: 1

      The key power C macros had over any Template-type construct I've seen is that you can actually paste the name of the macro arguments to form unique variable names within the macro. So a single macro could expand to three or four different functions, a handful of variables, etc.

      Yes, people are prone to hanging themselves by abusing macros, but you can do some wicked code simplification that expands inline to maximize performance. I had macros in my library of useful stuff that turned all the declarations and accessors of a "attribute and methods" into a single macro invocation. It was hard to debug them initially, but I used them for years afterwards without problems.

      Sorry but reading this gives me shudders. Read some winning entries in the The International Obfuscated C Code Contest to see why some 'features' of C are like a disease. One just has to love the Biggar entry beautiful abuse of the C macro system.

      --

      "I think this line is mostly filler"
    20. Re:I like it by badkarmadayaccount · · Score: 1

      A thousand times this.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    21. Re:I like it by JasterBobaMereel · · Score: 1

      The power of many C constructs, including macros, is that they allow you to do things that would be difficult or impossible in any other language

      The downside is it makes it easy to do things that no sane person would want to do ... by accident

      The Obfuscated C Code competition is the ultimate example of abuse taken to extremes but people have done similar things either deliberately for allegedly good reasons (at the time) or because they did not know better ...

      Other languages make you jump through hoops to prove that you actually want to do something stupid, because there may be a good reason for doing it in this one case...., C just lets you do it ...

      --
      Puteulanus fenestra mortis
    22. Re:I like it by Anonymous Coward · · Score: 0

      I like it. It looks like they've taken the power of C/C++ macros, wrapped it up in a clean simple syntax, and applied it to Java.

      Clean syntax? Try to access static members in xtend and you will see how clean it is.

  3. Groovy / Scala by Anonymous Coward · · Score: 2, Interesting

    Does it do anything that Groovy or Scala don't already?

    1. Re:Groovy / Scala by Anonymous Coward · · Score: 1

      It may actually be useful.

    2. Re:Groovy / Scala by prefec2 · · Score: 1

      Xtend is merely designed for model to model and model to text transformations. Yes you can also use it for other tasks. And yes Scala has some similar concepts.

    3. Re:Groovy / Scala by mr_da3m0n · · Score: 1

      Compile to readable Java code instead of jvm bytecode? Also I wouldn't really lob Scala in the same bag, it is a rather different animal, if you ask me.

    4. Re:Groovy / Scala by Anonymous Coward · · Score: 0

      Compiles to readable java that those less familiar with other languages can easily reason about / debug? (It's difficult to move a team of devs to a new language, less difficult if you can sell them on the idea of still being able to read the resulting code in the language they're familiar with until fully comfortable)

    5. Re:Groovy / Scala by Anonymous Coward · · Score: 0

      You can target GWT, Android, etc?

    6. Re:Groovy / Scala by icebraining · · Score: 1

      People have been running Scala on Android for at least two years. Scala on GWT seems to be coming along nicely too.

    7. Re:Groovy / Scala by osu-neko · · Score: 2

      Does it do anything that Groovy or Scala don't already?

      Does any language do anything that any other Turing-complete language doesn't do? Doesn't seem like a sensible question. A more intelligent question would be, "Does it do anything differently?" And yes, it does.

      --
      "Convictions are more dangerous enemies of truth than lies."
    8. Re:Groovy / Scala by johanatan · · Score: 1

      That's not a significant difference since there should be a one-to-one correspondence between jvm bytecode and java source code.

    9. Re:Groovy / Scala by ChrisDolan · · Score: 1

      That was my first question too, comparing to Groovy. I think the answer is that Groovy has significant runtime requirements (notably dynamic typing and invocation) whereas Xtend appears to purely compile down to plain Java. I suspect that means that you can run it in an ordinary container without extra tooling like Groovy. But a cursory look at the docs suggests that they do have some runtime library requirements (I see a StringConcatenation class and an InputOutput class, for example)

    10. Re:Groovy / Scala by euroq · · Score: 1

      It's a huge difference. If a language compiles to Java source code instead of byte code, then developers can use it with other Java source code more easily. If it only compiles to byte code, then it can only be used as a library, and you can't debug it as easily by stepping through the source code.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    11. Re:Groovy / Scala by johanatan · · Score: 1

      You missed the point. Isn't there something akin to .NET Reflector (i.e., a disassembler) for Java? For C#, there is a one-to-one correspondence between CLI bytecode and C# source. I would imagine the same (or something very near it) is true for Java.

      In other words, these are high-level bytecodes; not low-level assembly. Hence, they are easily disassembled to human-readable source.

    12. Re:Groovy / Scala by Anonymous Coward · · Score: 0

      I guess it's a response to Ceylon. I wonder why the designers of this new languages did not approached Scala/Groovy community first if they didn't like something on it (same goes for Ceylon).

  4. Eclipse by ZankerH · · Score: 5, Funny

    The "You want performance? Fuck you, have more features instead!" of IDEs.

    1. Re:Eclipse by Anonymous Coward · · Score: 0

      Fuck off and let us use our IDE as an IDE, go cat text to files or something.

    2. Re:Eclipse by kestasjk · · Score: 2

      Performs fine here..

      --
      // MD_Update(&m,buf,j);
    3. Re:Eclipse by Anonymous Coward · · Score: 0

      It's the perfect example for how Java actually is ... uhm. slow.

      / also aliquis

    4. Re:Eclipse by Anonymous Coward · · Score: 0

      You, too!

    5. Re:Eclipse by skomp · · Score: 1

      Uhm, and that's exactly why it translates to Java and not Byte Code. This way the Java compiler's optimizations can be used instead of having to implement them all by yourself. In addition: Xtend integrates perfectly with Java. so if you think, your Java code would be faster than the code generated from Xtend: Feel free to write Java code. But I personally like the type inference and the google collections and functions (which is used for closures) integration. Oh nearly forgot to mention the operator overloading abilities :)

  5. Reinventing Emacs Lisp... by Anonymous Coward · · Score: 0

    ...but fat, slow and horribly resource-hungry.

    Meh.

    1. Re:Reinventing Emacs Lisp... by Mitchell314 · · Score: 2

      "but"? I think you meant "Also". :P

      --
      I read TFA and all I got was this lousy cookie
  6. Re:Why? Because! by tomhudson · · Score: 4, Insightful

    "We saw what you did with your classes, so we added some more classes to your classes to hide your classes because we have more class."

    "We saw what you did with your syntax so we added some more syntax to your syntax to hide your syntax because we are more syntaxy."

    "We saw that java still sucks so we added some more suckiness to java's suckiness to hide java's suckiness because our suckiness sucks less ... sort of ... maybe ..."

    "... because our next step is to distract you from our new suckiness by adding more xml ..."

  7. Java needs new versions by bigsexyjoe · · Score: 2, Interesting

    Seems like cool language. Much like Spring and the new JVM languages, it seems like this exists primarily to address shortcomings that Java has because it hasn't come out with new versions for so long.

    Eclipse already writes a lot of Java for you, so this seems like a natural extension. Of course, this is a ridiculous state of affairs. When a most code in a language is boilerplate, it's time for a new version, that takes care of that for you. I mean could you imagine anyone releasing a Java-like language today that didn't have first class treatment of properties, didn't have syntax for applying a function to every member of a collection, and didn't have better type inference?

    It's interesting that it compiles to Java, I don't think it'll be long before, it'll start to completely skip the Java phase.

    1. Re:Java needs new versions by VGPowerlord · · Score: 1

      it seems like this exists primarily to address shortcomings that Java has because it hasn't come out with new versions for so long.

      Yes, because 100 days is a very long time.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Java needs new versions by Anonymous Coward · · Score: 0

      It's interesting that it compiles to Java, I don't think it'll be long before, it'll start to completely skip the Java phase.

      Don't get your hopes up yet. Thats been my wish all along for Scala.
      A very nice and modern language but shackled by having to use the jvm as a back end.
      Its a pity the Scala compiler generates code only for the JVM.

      There are quite a few well designed languages that are vastly superior to Java, unfortunately apart from Haskell that compiles to C code, every other language worthy of consideration targets the JVM exclusively. How freaking stupid is that ?

    3. Re:Java needs new versions by hibiki_r · · Score: 2

      7 was almost a minor revision when compared to anything Microsoft is doing, or with 1.5 and 6. 7 actually looked promising at first, but pretty much every single feature that seemed like a game changer was delayed.

      There's tons and tons of libraries out there that try to emulate what other languages can do, and do it with horrible style due to Java's approach to syntax. Just look at Guava Collections: A large array of workarounds for features that the language should support. But predicates that come with a penalty of 4 lines of noise aren't really any better than dealing with iteration yourself. Jumping through hoops to initialize a map in a concise way? Having to build a full inner class for a one use, one line comparator? Why is there no way to let the compiler create getters and setters upon request, instead of filling codebases with hundreds of lines of code that are sheer noise?

    4. Re:Java needs new versions by Massacrifice · · Score: 1

      Most important features users expected from Java 7 have been pushed back to Java 8. Which will come out next year. Maybe. And which will be required to preserve backward compatibility with previous source, forcing hard compromises to be made (see generics in 1.5). Real improvements to Java will now be be mostly on the JVM, to help these new languages grow, as Java the language painted itself in a corner a while ago.

      --
      -- Home is where you eat your heart out.
  8. EMF by prefec2 · · Score: 4, Informative

    We are using Xtext (2.0) and its companion Xtend (2.0) to build domain specific languages. Together with Xbase, a part grammar for expressions, we can build new DSLs for various purposes in no time. And it is not such a code bloat as some people might think. When you develop applications with a wide range of models, these EMF-based tools are quite practical. Beside that, we evaluated ATL, QVT, and Xtend in various scenarios. Right now it looks like, that Xtend is very well suited to build generators to source code of other languages especially Java and Scala. It also made a good impression in model-to-model transformations.

    1. Re:EMF by AlterEager · · Score: 1

      We are using Xtext (2.0) and its companion Xtend (2.0) to build domain specific languages. Together with Xbase, a part grammar for expressions, we can build new DSLs for various purposes in no time. And it is not such a code bloat as some people might think. When you develop applications with a wide range of models, these EMF-based tools are quite practical. Beside that, we evaluated ATL, QVT, and Xtend in various scenarios. Right now it looks like, that Xtend is very well suited to build generators to source code of other languages especially Java and Scala. It also made a good impression in model-to-model transformations.

      Ah. I guess i'll skip it then.

    2. Re:EMF by TuringTest · · Score: 2, Insightful

      Meet the new slashdot, where technical programming posts that actually give insight are met only with trollish hate and a general lack of understanding. Learn to Google your TLAs before exposing your lack of skilz, kid.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    3. Re:EMF by TuringTest · · Score: 2

      What kind of models do your applications support, and in which industry (or industries) are they used?

      I'd love to hear about how one gets to be an expert in model-driven programming.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    4. Re:EMF by prefec2 · · Score: 3, Informative

      I work at university right now. We have a lot of projects together with software companies. I for myself are in a project were we design a language and tools to develop railway control centers based on programmable logic controllers (PLC) with Funkwerk-IT. That means our target languages are the IEC 61131-3 languages (e.g., FBD, ST). The general idea is, that you can model your railway control business logic in an appropriate language instead of coding it in FBD or ST. Part of the project was the design of a railway topology description language (and meta-model) which has been a valuable input to their own projects.

      In another project about scientific workflows, a colleague of mine is writing an BPNM to BPEL converter in Xtend. And transformations for some scientific workflow notations (SWN). Here the big thing is that SWN are data flow oriented while BPNM and BPEL are control flow oriented.

      A third project is about measuring software properties, based on their code and composition (architecture) and to monitor their run-time behavior. This effort is called MAMBA and will hopefully be presented at CSMR 2012.

      Personally I used Xtend and Xpand a year ago to wrote an application based on JSF/Richfaces and all that stuff and I had to do a lot of similar things in the backing beans for my templates. So I wrote a small Xtext grammar and a generator in Xpand (utilizing also Xtend) to produce this similar code. It gave me quite a boost, as there was now less space for errors. The language itself is ugly and can be made better, but it took me a workday to build it including the generator.

      The best thing about modeling, you can concentrate on the problem domain and forget about the implementation domain while formulating thing for the problem domain. Well, this is not new, XML and XSD went down the same path, however, the EMF tools are better integrated and they are closer to the data processing while XML is closer to data storage (conceptually).

    5. Re:EMF by angel'o'sphere · · Score: 1

      However the article's Xtend is something different than Xtend (2.0) from the open architecture ware stack that you are using ;D

      Even if you are as deep into it as you are, it helps to read the damn article.

      Which opens the question: why the fuck is that Eclipse project called Xtend and not something different?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:EMF by prefec2 · · Score: 2

      Well the interesting thing is: I was talking about http://www.eclipse.org/Xtext/#xtend2 which looks for me by any definition exactly like http://www.eclipse.org/Xtext/xtend/ . However, xtend2 is different from xtend+xpand which were its predecessors [http://www.eclipse.org/modeling/m2t/?project=xpand]. So reading the news (again), I found out that the Eclipsians see the language in a quite different light as the modeling guys from itemis. But I am absolutely sure that this is the same language. Otherwise I would be wondering, why these two languages have the same syntax and are both based on xtext.

    7. Re:EMF by TuringTest · · Score: 1

      Cool! I'll have to try it in my work at modelling schedules for railways and other transport networks.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    8. Re:EMF by angel'o'sphere · · Score: 1

      Hm,
      but we are talking about: http://www.eclipse.org/Xtext/xtend/ (this article)
      And (you): http://www.eclipse.org/Xtext/

      Or not? For me this new Xtend does not look like anything from oAW ... but I'm only an interested follower not a user of oAW, so I might be mistaken.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:EMF by prefec2 · · Score: 2

      Yes it is different from the old oAW stuff. However, the Xpand language is now part of this new Xtend. You can use guillemont-expressions in text expression e.g., '''Some Text >''' which is a Xpand-Expression inside the '''...'''. However, all the foreach macros and templates form Xpand are gone, as there are similar constructs in Xtend.

    10. Re:EMF by angel'o'sphere · · Score: 1

      Thanx.
      Seems to be time to dig deeper into oAW etc. again.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  9. Here comes the injenction by Billly+Gates · · Score: 1

    I am sure Oracle wont be happy

    1. Re:Here comes the injenction by leenks · · Score: 1

      Err? Why?

    2. Re:Here comes the injenction by Anonymous Coward · · Score: 0

      They will kill Java eventually

      Hey, at least something good will come out of it...

      Seriously though, java is infuriating. Combining the terse elegance of C++ with the speed of a late 1970s Lisp implementation.

    3. Re:Here comes the injenction by SplashMyBandit · · Score: 3, Informative

      Who cares if Oracle kill their Java. The Free Software OpenJDK is where the action is at. Then there is IBM Java, and GNU gcj/classpath, and Kaffe, and others. It is not a situation like .NET where if Microsoft kills it then it'll die everywhere (due to the proprietary licensing).

    4. Re:Here comes the injenction by Anonymous Coward · · Score: 0

      Who cares if Oracle kill their Java. The Free Software OpenJDK is where the action is at. Then there is IBM Java, and GNU gcj/classpath, and Kaffe, and others. It is not a situation like .NET where if Microsoft kills it then it'll die everywhere (due to the proprietary licensing).

      Yeah Java is about as open source as Microsoft Windows. Didn't the whole Harmony fiasco teach you something ? It doesn't matter if the JDK is open source when Oracle is the only one that can grant conformance tests to an implementation. And if you try to improve on Java without Oracle's good graces you open yourself to big Larry's lawyers. Just like Google. What a fucking joke.

    5. Re:Here comes the injenction by Doc+Ruby · · Score: 1

      There's something wrong with you if your Java executable is slower than C++. You're a bad Java programmer, or you're using a 10 year old machine (or a 15 year old JVM), or you just have your current environment badly configured.

      Java is also fairly terse and elegant. As this new language shows by laboring mightily to replace expressive terseness with marginally terser (but also no more terse, just different) and more ambiguous keywords and syntax.

      --

      --
      make install -not war

    6. Re:Here comes the injenction by SplashMyBandit · · Score: 1

      Yeah Java is about as open source as Microsoft Windows. Didn't the whole Harmony fiasco teach you something ? It doesn't matter if the JDK is open source when Oracle is the only one that can grant conformance tests to an implementation. And if you try to improve on Java without Oracle's good graces you open yourself to big Larry's lawyers. Just like Google. What a fucking joke.

      If Oracle goes crazy then no-one will care if they do or don't grant conformance to their implementation. What will matter is that OpenJDK (and probably allies) will still be usable and extendable by anyone thanks to it being Free Software. This is an exactly analogous situation to OpenOffice and LibreOffice. What matters is the version that users are using and maintainers are maintaining - in that example it is LibreOffice that has the momentum and no-one cares a whit that Oracle has 'gone off the deep end'. Java also has the same beauty in its situation (even if you can't seem to grok it). In fact, this is one of the things that Free Software gives you (that Open Source does not, since you probably don't even know the difference). This is not at all analogous to the .NET/Windows situation which you mentioned. That's quite a Fail, amigo - I suggest you do some of your own research on software licensing and stop reading the bollox FUD on MSDN and poorly-informed synchophantic sites.

    7. Re:Here comes the injenction by Anonymous Coward · · Score: 0

      The Java situation is not analogous to the Openoffice/Libreoffice case.
      Java is not open source according to the FOSS definition. Its technically open source in the sense that you get to see the source code. But thats it.
      Dare to take the source code of the JDK and improve upon the language and or the libraries without Oracle's consent (even without calling the new version java) and see what happens. Conformance test or not, everything related to Java has to pass through Oracle's gateway. Technical commitees even the community at large are irrelevant; if Oracle decides that this or that feature is not to make into the language or the JDK thats it. Thats the final word. This is not open source by any strech of the immagination no matter how hard you wish it were.
      Java was a poisoned pill under Sun, and it continues to be a poisoned pill under Oracle.
      You can't claim something is open source in the FOSS sense, and then limit or deny any third part improvement or implementation.
      The suit brough against Google exemplifies why Java under Oracle is not open source (according to the FOSS definition).

    8. Re:Here comes the injenction by euroq · · Score: 1

      Unfortunately, your assessment is not the case with Java. You are not allowed to change or use Java source based on the Java "open source" license, and more importantly due to patents by Oracle.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    9. Re:Here comes the injenction by euroq · · Score: 1

      Java hasn't been slow at all for a decade at best. Don't get me wrong, there are certain things that can be done quicker with C++, but it's few and far between of what most modern applications do.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    10. Re:Here comes the injenction by SplashMyBandit · · Score: 1
      You are free to alter OpenJDK. You are free to create a *compatible* implementation. You may not use the word Java unless you pass the TCK. Tell me how this is not Free Software, and while you are at it tell me how this stacks up against your original assertion (Java is as non-Free as Windows).

      > You are not allowed to change or use Java source based on the Java "open source" license, and more importantly due to patents by Oracle.
      Again, you have been listening to too much FUD and your understanding of the situation is tenuous (which leads you to avoid Java instead and adopt non-Free technology instead, just what Microsoft want and you fell for it hook-line-and sinker and furthermore even repeat the FUD). Oracle will use its patents to defend agains people who break the licensing conditions and make non-compatible versions of Java (eg Google) just as Sun did with Microsoft (and was proven correct by the court). While I dislike Oracle's business ethos and practice as much as the next joe, it is the OpenJDK where the action is at, and this is Free Software (but must be defended so write-once run-anywhere still works - and I rely on this on a daily basis).

    11. Re:Here comes the injenction by euroq · · Score: 1

      Tell me how this is not Free Software, and while you are at it tell me how this stacks up against your original assertion (Java is as non-Free as Windows).

      Huh? I never said that. What I meant in my comment was that anyone can contribute to Firefox 8.1, but not everyone can contribute to Java 8.1. Sure, people can download the source, but as I understand it, the reason Oracle is suing Google is over "Java patents", which to me makes Java "not free".

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
  10. The real point of Xtend is Xtext by Anonymous Coward · · Score: 1

    Xtend is an example language developed with the Xtext language construction toolkit. It also now does double duty as a support language for that same toolkit. The dynamic dispatch and string template portions of the language make it ideal for model-to-model and model-to-text transformations (i.e. compiler construction) when developing Domain Specific Languages in Xtext.

  11. Experienced Xtenders wanted by Anonymous Coward · · Score: 1, Funny

    We are planning to use this language in our future projects. Now we are searching experienced Xtend-coders with a minimum of 3-5 years experience on Xtend-coding.

    1. Re:Experienced Xtenders wanted by Chaos+Incarnate · · Score: 1

      Replying to undo bad moderation.

      --
      Benford's Corollary to Clarke's Law: "Any technology distinguishable from magic is insufficiently advanced."
    2. Re:Experienced Xtenders wanted by Anonymous Coward · · Score: 0

      Preferably with a college degree and under 20.

    3. Re:Experienced Xtenders wanted by prefec2 · · Score: 2

      Well. This would be possible. The predecessor of Xtend (2) was Xtend (1) and Xpand which are the sucessors of the openArchitectureWare transformations. And 3-5 year of Xtend or oAW experience is possible. Nevertheless, I am waiting for some dumb job offer writing just like the one you sketched ;-)

  12. How many inches will Xtend give me? by rollingcalf · · Score: 1

    Scalability and performance are important.

    --
    ---------
    There is inferior bacteria on the interior of your posterior.
    1. Re:How many inches will Xtend give me? by prefec2 · · Score: 1

      It is so cool it will be at least 2 inches in length and diameter.

    2. Re:How many inches will Xtend give me? by Anonymous Coward · · Score: 0

      So it will be 8" long and 4" in diameter? That's kind of stubby.

  13. Compiles to Java by nullchar · · Score: 1

    http://www.eclipse.org/Xtext/xtend/#compilestojava

    Though the example using a StringBuilder was ugly. Seems you should either generate readable code or efficient code.

  14. Running from a build script by Anonymous Coward · · Score: 0

    I don't see anything about running this as part of an ant build, I can't see this being practical to use yet if the only thing available is an eclipse plugin.

  15. CaffeeScript? by El_Muerte_TDS · · Score: 1

    Since when did that language become significant?

    Also, bad analogy. CaffeeScript compiles to JavaScript source code. This new language from Eclipse compiles to Java bytecode (just like Groovy, Scala, +various other languages).

    1. Re:CaffeeScript? by Anonymous Coward · · Score: 0

      No, this new language from Eclipse compiles to Java source code.

    2. Re:CaffeeScript? by Anonymous Coward · · Score: 0

      Not according to the website, that says "compiles to readable Java code".

      (I agree with you about CoffeeScript)

    3. Re:CaffeeScript? by prefec2 · · Score: 1

      nope. Xtend compiles to Java, which is compiled to JVM byte code.

    4. Re:CaffeeScript? by shutdown+-p+now · · Score: 1

      Since when did that language become significant?

      Since some languages have started to lag more than a decade behind other languages, and since people have realized that certain language features (e.g. closures) lead directly to better designed libraries.

    5. Re:CaffeeScript? by El_Muerte_TDS · · Score: 1

      Ok, then it's not a JVM language considering the JVM can't execute Java source code.

    6. Re:CaffeeScript? by El_Muerte_TDS · · Score: 1

      I'm pretty sure JavaScript has closures.

    7. Re:CaffeeScript? by shutdown+-p+now · · Score: 1

      JS does, yes. Java does not, which is what the language described in TFS adds to it (among other things).

      That said, JS is missing many other things that help writing good libraries. A module system, for one.

    8. Re:CaffeeScript? by El_Muerte_TDS · · Score: 1

      And my question was

      Since when did that language [CoffeeScript] become significant?

      And even besides that. I also mentioned Groovy and Scala, both target JVM had contain closures.

    9. Re:CaffeeScript? by Anonymous Coward · · Score: 0

      Lol, nice save Captain Anal.

    10. Re:CaffeeScript? by euroq · · Score: 1

      I don't believe there was any implication that CoffeeScript was significant. It was just an analogy in the summary.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
  16. Re:Why? Lightweight? by Meeuw · · Score: 2

    To have the .NET framework backwards compatible (like Java) you'll need to have all .NET frameworks installed which requires 4 GB. In what universe is that lightweight?

  17. Welcome Programm Language #2.342E1324821343237122 by Anonymous Coward · · Score: 0

    Yippy, yet another programming language. We need more of them - ideally 7 billion of them so everyone can have his own one.

    Ok, cynism aside. Serious question: Why don't people work on making existing languages more effective by providing powerful frameworks, libraries and the like? It's the ecosystem that determines the value of a programming language - much more than syntax or any neat / elegant tricks. Starting with a new programming language puts you on square one again: No users, no frameworks / libraries.

  18. Xtend Dart Scala Go Groovy etc - STOP!!! by Anonymous Coward · · Score: 0

    Head is going to explode - what happened to having an industry standard language? If you know it, you can write programs in it. Magic pixie dust (toolchain, compilers, etc) turns your code into a binary for your platform.

    I actually like syntactically weird languages better than C-like ones. The C-like ones are so similar it's hard to remember them. Switching languages is cognitively hard.

    Example - length of string - is it:

    strlen() like C and PHP
    length() like Perl
    string.len
    string.length (properties)
    string.len()
    string.length() (methods)

    ???

    Right now, I can't even remember Java's way of doing it, and I mainly use Java!

    I need a desk full of O'Reilly books just to function.

    When does this get really bad? When you have a PHP or JSP page that emits code in JavaScript, CSS, and jQuery. Yes, there is a logical and necessary distinction between JavaScript anonymous properties and CSS definitions, but after a few hours it all blurs together. Throw in the meta-level confusion (is this code, or is this emitting code?) and JSP's three syntaxes (Java, EL, and the thankfully mostly-ignored ColdFusion abomination JSTL) and my head wants to explode.

    1. Re:Xtend Dart Scala Go Groovy etc - STOP!!! by Raenex · · Score: 1

      what happened to having an industry standard language?

      We'd all be programming in FORTRAN or COBOL if we stuck with that mentality.

      my head wants to explode

      I sympathize. There's more technology than you can shake a stick at. I just don't see any way out of this mess. Technology is always going to churn while chasing improvements.

  19. Stall(in)man by Anonymous Coward · · Score: 0

    That man is a Stalinist - the way he asked the guy to take it off his website and not let anybody know that it exists. It's not enough to just deny permission for it to be a back end to GCC.

    I won't be sad when he's gone.

  20. Efforts that could be better spent... by Anonymous Coward · · Score: 0

    Not sure whether there is a need for that today.
    Instead of providing features that people don't really need, they'd better add native support to maven once and for all.
    The way maven support is built today in Eclipse sucks big time and is making may of my clients look away.

  21. So I installed it now how do I run it? by Paul+Fernhout · · Score: 1

    I got the tutorial project created, but I don't see an option to compile/run it as Xtend?

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    1. Re:So I installed it now how do I run it? by Paul+Fernhout · · Score: 1

      This kind of hints at generatign Xtext language artifacts?
      http://www.eclipse.org/Xtext/documentation/2_1_0/035-domainmodel-java.php

      Anyway, what gives? I guess the Eclipse people just assume people can figure out how to compile some new language in Eclipse? Or figure out how to use Xtext and somehow understand how Xtend related to it?

      Or maybe something went wrong related to the install? I had to guess from about 20 packages which to install with various combinations of stuff with different versions.

      So, still some obvious rough edges for anyone who wants to try it.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    2. Re:So I installed it now how do I run it? by prefec2 · · Score: 1

      I did not play with your tutorial. However, in most cases there is a file with a *.mwe2 extension (or similar). Right click on it and choose under Run as ... the option run as MEW workflow.

    3. Re:So I installed it now how do I run it? by Paul+Fernhout · · Score: 1

      Thanks. Sadly, I can't find a file with a mwe2 extension in the Xtend tutorial project.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    4. Re:So I installed it now how do I run it? by Paul+Fernhout · · Score: 1

      OK, I got it working. Basically, I (think I) must have installed just the runtime and UI parts. I assumed Eclipse would take care of dependencies. So, nothign ran. Then I tried again and installed more modules, but the turotial still did not work. Then I dleeted the tutorial project, and remade is as an example. And now it works.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    5. Re:So I installed it now how do I run it? by Paul+Fernhout · · Score: 1

      I got it working; see my other comment here, but basically I did not have all the required modules installed. The download instructions could be a lot clearer on exactly what you should be installing. I think I ended up with just the UI and SDK the first time.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  22. Re:Welcome Programm Language #2.342E13248213432371 by sourcerror · · Score: 1

    The thing is, C# has already macroing capability (and other lispy features) and Java is often dissed for the lack of it. This language seems to address that.

  23. Tell me it ain't C# by tgv · · Score: 1

    I don't care about type inference. My IDE does a good job. And I like static typing. But well, the language has closures and typed switches, so why not. But then the set/get feature.

    First we got told that writing person.name = "John" is bad. Bad, bad, bad. I never understood why. Sure, getters and setters are very useful, beans and all, and it can take away some trouble, but if you really need a function that does more than change the value of field x, why call it setX()?

    Anyway, that's the current practice: getX() and setX(), and sometimes they don't get x, or set x, but just pretend. Now Xtend translates person.name = "John" into a call to a setter. And that's even worse. In a previous job, I inherited C# code that had statements like db.open = true. Whaddya think that meant? Why, it opens the db connection, via the setter, of course! And indeed, assigning false... So now all this power of abuse has come full circle back to Javaland. What a mess.

    1. Re:Tell me it ain't C# by FlyingGuy · · Score: 1

      Just be thankful it does not use white space as a block closure.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    2. Re:Tell me it ain't C# by Cerium · · Score: 1

      Oh good, someone else who understands why getters/setters are redundancies that generally lead to horribly bad things. I've been told for years that I'm insane and I just don't get it (or that I'm stuck in the past, etc).

      If only I had mod points...

    3. Re:Tell me it ain't C# by shutdown+-p+now · · Score: 4, Informative

      First we got told that writing person.name = "John" is bad. Bad, bad, bad. I never understood why.

      I don't know who said that it's bad, but certainly no-one sane.

      What was said is that you need API transparency, such that, if you later need to add validation that prevents person.name="" from compiling, you don't have to change the clients in any way. In Java, it was not given proper consideration when designing the language, and so the only workaround was to pre-emptively wrap all fields in get/set methods, and only use the latter from other classes, so that, if you ever need to add some code there, you can do so. However, the fault lies squarely with the language here. For example, in Eiffel, public fields are absolutely normal, because field access is indistinguishable from no-arg method call on API client side, so you can always substitute one for another.

      (By the way, if anyone tells you that writing one-liner get/set methods which do nothing but directly return or set the field is "encapsulation", it's the best indication that person saying so only knows OOP as a cargo cult, where they use specific words without properly understanding their meaning - as if they were some kind of powerful spells that magically solve problems by merely being mentioned.)

      In a previous job, I inherited C# code that had statements like db.open = true. Whaddya think that meant? Why, it opens the db connection, via the setter, of course! And indeed, assigning false...

      Would it be any better if it was Java code that had a method named setOpen()?

      In reality, it boils down to giving sane (i.e. principle of least surprise) semantics to class members. Whether they are properties explicitly because the language allows it, as in C#, or implicitly defined by their name by convention, as in Java, the expectations are the same. I use a few simple rules to determine if something should be a property:

      1. If (foo.Bar != foo.Bar) - i.e. if reading the value twice without doing any other changes to the global state of your system gives two different values - then Bar should not be a property.

      2. If, after setting foo.Bar = x, getting it returns something different from x, then Bar should not be a property. This one is arguable, since some people like to put normalization code in property setters - trimming strings, replacing nulls with blanks etc. Personally, I disagree with that practice; however, the rule applies even then, you just need to use the common sense definition of "same" and "different" - i.e. not operator==, but what makes most sense for value domain of that property.

      3. If setting foo.Bar = x, for any x, can throw any kind of exception other than the one indicating contract violation by the caller (e.g. in .NET, ContractException, ArgumentException or InvalidOperationException), then Bar should not be a property. A "contract exception" is defined as one that sane callers should never catch (.NET 4+ enforces this by making ContractException internal). Most certainly, something throwing IOException or SqlException or similar things is absolutely not a property.

      4. If reading from or writing to foo.Bar cannot be safely done on the UI thread for the fear of blocking it long enough to adversely affect UI responsiveness, it should not be a property. This one is also subjective, since it does not define "long enough" or "adversely affect", but it's one of those cases where you know it when you see it.

    4. Re:Tell me it ain't C# by tgv · · Score: 1

      You're completely right, but the lunatics are running the asylum sometimes. Many people, even some IDEs, insist on generating getters and setters, even when there isn't a JavaBean in sight.

      Your points about properties are all true, but a subset of what I would like to see: namely that an assignment operator just performs an assignment, and nothing else. The database open assignment was a case in point. It should just have been something like conn.dbOpen(). We might have conventions for function names that do generic things based on reflection (apart from get and set, there is e.g. also JUnit's testX(), which is sort of cute), but let's not go beyond that.

    5. Re:Tell me it ain't C# by johanatan · · Score: 1

      I don't care about type inference. My IDE does a good job. And I like static typing.

      Type inference works with static typing. And, even if the IDE automatically produces boilerplate code, who wants to read and maintain *that*? I prefer high signal:noise ratios for source code.

      First we got told that writing person.name = "John" is bad. Bad, bad, bad. I never understood why.

      The problem is with public fields; not with public properties. Properties allow you to enforce class invariants; fields do not.

    6. Re:Tell me it ain't C# by Anonymous Coward · · Score: 0

      In theory you can call them anyway you want, just provide a BeanInfo so the runtime can understand your properties. Unsurprisingly, people prefer to stick to the get/set convention.

    7. Re:Tell me it ain't C# by shutdown+-p+now · · Score: 1

      a subset of what I would like to see: namely that an assignment operator just performs an assignment, and nothing else.

      I think it's perfectly reasonable for assignment operator to also perform validation, and raise property change notifications. Also, in case of computed properties, an assignment to one (if computation is two-way) can reasonably recompute the source, unless it's an expensive operation.

    8. Re:Tell me it ain't C# by Anonymous Coward · · Score: 0

      First we got told that writing person.name = "John" is bad. Bad, bad, bad. I never understood why.

      It's bad because in older OO languages, that meant you were messing with the objects state directly, violating encapsulation, and possibly causing the object to have an invalid internal state. In newer OO languages, person.name = "John" only looks like you're doing that. In reality it's syntactical sugar and what happens is the equivalent of person.setName("John"). Typically if you're not required to explicitly create a getter/setter a synthetic one will be created at compile time, but you'll have the option of writing it yourself if you want to so you do something like checking that a value being set won't wreck your internal state.

      Sure, getters and setters are very useful, beans and all, and it can take away some trouble, but if you really need a function that does more than change the value of field x, why call it setX()?

      again, so you have the ability to manage your object's state rather than counting on something else doing the right thing (a strategy that invariably fails).

      Anyway, that's the current practice: getX() and setX(), and sometimes they don't get x, or set x, but just pretend. Now Xtend translates person.name = "John" into a call to a setter. And that's even worse. In a previous job, I inherited C# code that had statements like db.open = true. Whaddya think that meant? Why, it opens the db connection, via the setter, of course! And indeed, assigning false... So now all this power of abuse has come full circle back to Javaland. What a mess.

      If you can't figure out a way to abuse a language feature, you're not trying hard enough. Essentially every feature in every language can be misused/abused in some way. Considering the potential for misuse when deciding on a language feature is a terrible idea. We've all inherited bad code, but I've inherited more "bad code" because of languages lacking features, (looking at you Java), than because somebody abusing a language feature.

    9. Re:Tell me it ain't C# by euroq · · Score: 1

      First we got told that writing person.name = "John" is bad. Bad, bad, bad. I never understood why. Sure, getters and setters are very useful, beans and all, and it can take away some trouble, but if you really need a function that does more than change the value of field x, why call it setX()?

      Anyway, that's the current practice: getX() and setX(), and sometimes they don't get x, or set x, but just pretend.

      I also used to think making accessor methods was an unnecessary burden when writing code. But time and time again, I have ended up having to refactor the public properties into getters and setters. Not every time, mind you, but it's caused enough problems to make it worth my while to use accessor methods every time now. It's "wisdom" and "experience" and I really can't give you a good explanation of why. I know that it's been useful to be able to add contracts to setters, such as "throw an exception if this isn't a valid state". Thinking about it now, I probably would say that setters are much more useful than getters... but in Java there's no way to make a class's field public for reading and private for writing.

      Note that I'm only speaking for Java - with C# properties, it's probably the same or similar.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    10. Re:Tell me it ain't C# by euroq · · Score: 1

      +1 to everything you said, brotha.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    11. Re:Tell me it ain't C# by tgv · · Score: 1

      Refactoring into get/set is ok. I'm just of the opinion that set and get aren't needed in all cases. But what really ticked me off was overriding the assignment operator like in C#, making something that looks like assignment call some function, giving rise to all kinds of potential for abuse. I mean: programming language design is supposed to make programming better, at least for me. If I want something worse, I'll use VB...

    12. Re:Tell me it ain't C# by euroq · · Score: 1

      I've always thought operator overloading was awful. It isn't clear what happens when an operator overload occurs, especially with =. The only thing it's useful for is very simple math classes (like Vectors), and that's it. Everyone and their grandma thinks that they HAVE to put operator overloads in classes now.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    13. Re:Tell me it ain't C# by Xest · · Score: 2

      "Many people, even some IDEs, insist on generating getters and setters, even when there isn't a JavaBean in sight."

      Yes, but that's precisely to cater to the case that in future, there may be a need to do something else. It's partly more problematic with Java because in C# it's quick and easy to do:

      public string Name { get; set; }

      Whilst in Java, it of course takes longer and creates more code clutter to do:

      private string _name;

      public getName() { return this._name; }
      public setName(string name) { this._name = name; }

      Of course, C# properties aren't perfect, unless you do things in a more Java-esque way and don't use the automatic properties feature of C# 3.0 they force you to instantiate back in the constructor which is one of my bugbears with it, although some would argue that's how it should be done anyway.

      The issue is largely that if you change simple fields into properties (or getter/setter pairs in Java) later on because you genuinely do need to do something when the variable is read or set then it can be a breaking change, by doing it from the outset then that's not the case. It's about minimising the potential impact of future changes, and you simply never know how long your code will be out there how it will be used, how it's use will change. Getters and setters insulate from that.

      "The database open assignment was a case in point. It should just have been something like conn.dbOpen()"

      This IMHO was an example of bad use of properties, see point 3 of shutdown -p's original response to you as to why, not to mention the risks you potential face by way of resource cleaning in doing this sort of thing. Anything can be misused, but I do not believe it's a fair argument against the feature, because the feature in the hands of competent developers certainly leads to much better code. I'm not a fan of catering to the lowest common denominator, HTML5 does this and it's an awful spec with so many missed opportunities (i.e. it makes accessibility worse, it lowers software development quality standards reducing maintainability etc.) - effectively it makes crap markup standard make crap, poorly maintainable, poorly accessible markup standards compliant, rather than raising the standard to allow things to move forward as XHTML has done by increasing the amount of XML parsable (even if not served as XML) markup out there.

  24. Yet Another C Variant (YACV) by FlyingGuy · · Score: 1

    Lets take C, wrap it in C, then wrap that in C and then wrap the whole thing in yet more C.

    Can we please just program in C?

    --
    Hey KID! Yeah you, get the fuck off my lawn!
    1. Re:Yet Another C Variant (YACV) by shutdown+-p+now · · Score: 4, Insightful

      Can we please get C with sane declarator syntax? And some form of generic programming? And function literals? And a better-working separate compilation model that doesn't require people to wrap their entire interface declaration in #ifdef/#endif?

      Then, yes, we can just program in C.

    2. Re:Yet Another C Variant (YACV) by Anonymous Coward · · Score: 0

      I suspect Vala may support that.

      Vala is based on GObject, so it has a lot of features Java normally supplies (memory management, typing system, objects), but it "compiles" to C code.

      I haven't had time to use it, but I would assume it also has a sane compilation system that is used to auto-generate the #ifdef bullshit.

    3. Re:Yet Another C Variant (YACV) by Anonymous Coward · · Score: 0

      The Clay programming language is what C would look like, had it been invented today. Very interesting!

    4. Re:Yet Another C Variant (YACV) by Anonymous Coward · · Score: 0

      If you add "compiles to JVM bytecode" then you pretty much have Java.

    5. Re:Yet Another C Variant (YACV) by shutdown+-p+now · · Score: 1

      That really is exactly what I was asking for (and it got discriminated unions too, for good measure - forgot to list them!). I'll need to have a look into this thing. Thanks!

    6. Re:Yet Another C Variant (YACV) by FlyingGuy · · Score: 1

      C seems pretty sane to me. Just about everything you really depend on is written in C. The linux Kernel is written in C.

      And just about every language that supports those things you plead for is written in C.

      Can we please just write in C

      Generics are ughhh. They introduce more trouble then they are worth. They are clever though.

      Function literals? Pointer to a function much?

      Sane? Please! gimme a break.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    7. Re:Yet Another C Variant (YACV) by shutdown+-p+now · · Score: 1

      C seems pretty sane to me.

      Did you see any other similar low-level languages to compare to? Say, Modula-2?

      Just about everything you really depend on is written in C. The linux Kernel is written in C.

      That's because C happened to be in the right time at the right place, and by now became pretty much the only language in its low-level niche. It doesn't make it perfectly designed for that niche, however.

      Generics are ughhh. They introduce more trouble then they are worth.

      It seems that you're thinking of Java generics, but the term itself is (pardon the pun) more generic than that. And what's "ugh" about them? They cover many use cases which are done with macros in vanilla C, but do so in a much more ordered and safe way.

      On the other hand, non-generic qsort() or bsearch() in C standard library are considerably slower than generic std::sort() and std::find() in C++ standard library, because of extra indirection via void* that's necessary to, effectively, simulate generics. So it's not just about convenience, but also about performance.

      But, of course, I'd also much prefer to write something like "x = find(xs, x => x > 123)", rather than having to define a separate named function greater_than_N for every different N that I happen to need it for.

      Function literals? Pointer to a function much?

      Sane? Please! gimme a break.

      I was specifically referring to C declarator syntax - you know, where you have to write stuff like int*(*foo)[123], or know how to parse it when you read it. The only language for which someone felt the need to write a special utility to figure out declarators.

    8. Re:Yet Another C Variant (YACV) by Anonymous Coward · · Score: 0

      You mean C++11? (for the first three)

    9. Re:Yet Another C Variant (YACV) by shutdown+-p+now · · Score: 1

      C++11 still has the same insane left-to-right-then-left-again declarator syntax - in fact, it's made even worse by the way pointers-to-members are written. It does cover generic programming and function literals, but it doesn't do either particularly well - templates are more like primitive hygienic macros with their "defer most error checking until instantiation" behavior, and C++11 lambdas are welcome, but still verbose and have you repeat yourself (largely because they ditched polymorphic lambdas, so you have to specify argument types).

      But, yes, it beats vanilla C.

    10. Re:Yet Another C Variant (YACV) by euroq · · Score: 1

      C is really awesome for some things, but modern languages allow people to "get stuff done quickly", much quicker than in C. The C language syntax is a little quirky - for example, the extern keyword means completely different things in different contexts. There's no need for a -> operator; the . operator should be overloaded (this one is a matter of opinion, of course). Finally, garbage collection: writing programs and not worrying about memory and ownership is an awesome thing.

      Also, the C preprocessor is an awful programming language concept - more specifically, textual macros are. (See the D language for reasons why, and how to get around them... in a nut shell, you can use static constants, functions, etc., to do what macros do)

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    11. Re:Yet Another C Variant (YACV) by euroq · · Score: 1

      Check out the D programming language. It also is what C would look like, had it been invented today. https://www.google.com/search?q=d+programming+language

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    12. Re:Yet Another C Variant (YACV) by euroq · · Score: 1

      Just about everything you really depend on is written in C. The linux Kernel is written in C.

      That's a complete strawman argument, and mostly incorrect. First of all, we're not talking about everything people depend on. Second of all, lots of modern stuff is not written in C (such as modern Windows, most of the services on the Internet, enterprise/business software, etc.) Some things are written in C, but that doesn't mean it's the best language for everything.

      And just about every language that supports those things you plead for is written in C. Can we please just write in C

      This statement implies that writing compilers is well suited for C - even if that were correct, then that does not therefore imply that everything should be written in C.

      I don't hate C by any means whatsoever (even though I would change some things if I could). However, it's ridiculous to think that everything should be programmed with C. It sounds like you've never been in a lot of modern programming situations (your sig is a hint at this) in which C would be a wrong choice compared to other languages (I don't mean that as an insult).

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    13. Re:Yet Another C Variant (YACV) by renoX · · Score: 1

      D is not what the GP asked: he asked a sane syntax for variable declaration and D reuse C's not very good syntax.
      D has local-type inference though which helps a little..
      And while D doesn't truly need a GC, its standard library is made with the supposition that you have a GC, which is not very coherent IMHO.

    14. Re:Yet Another C Variant (YACV) by euroq · · Score: 1

      I wasn't talking to the GP, I was talking to who I responded to. That being said, D does improve on the type syntax of C, although it is similar. It replaces the function type syntax with the keyword "function". It always reads right to left, so you don't have that strange way of how "const" can apply either to the left or to the right in C.

      However, if you don't like reading right to left, then there's no help there.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    15. Re:Yet Another C Variant (YACV) by badkarmadayaccount · · Score: 1

      Macros are good, just use the same tokenization as the language, add a little reflection for flexibility and error checking.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    16. Re:Yet Another C Variant (YACV) by euroq · · Score: 1

      Yes, macros/templates/etc. are good... but the C preprocessor implementation of them are awful! As in, blind textual replacement isn't nearly as good as symbolic replacement. The c macro was made in the 70s when preprocessing was the best (or easiest?) way to do it, but to this day nobody's ever done it again with a new language.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    17. Re:Yet Another C Variant (YACV) by badkarmadayaccount · · Score: 1

      My point exactly.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  25. yay! Another langauge by nurb432 · · Score: 1

    Just what we need....

    --
    ---- Booth was a patriot ----
  26. Re:Welcome Programm Language #2.342E13248213432371 by scottbomb · · Score: 1

    AMEN.

    Where's that mod point when I actually need it?

  27. What is "hello world" in Xtend? by Paul+Fernhout · · Score: 1

    This is not compiling for me starting with the "static":

    class Test2 {
            static main(String[] args) {
                    println("hello");
            }
    }

    Too bad they don't provide a simple hello world example anywhere that is easy to find.

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  28. Hurrah! by dgriff · · Score: 1

    Hurrah - it's been weeks since the last new programming language!

  29. Fucking eclipse by MichaelSmith · · Score: 1

    This will be used to create another pointless layer of abstraction away from the real (non-eclipse) world. At the end of every day I am do glad I don't have to touch that POS for another 18 hours. Consider this: during development eclipse loads classes directly from class files, while applications operationally load from jar files. There is no way to tell eclipse to load its classes in exactly the same was as an operational system, and no way to know for sure which classes will be loaded.

    Rubbish.

    1. Re:Fucking eclipse by angel'o'sphere · · Score: 1

      Well,

      that is not Eclipse ... it is just a classpath issue. After all if you launch a program from Eclipse for debugging it is generally running inside of its own JVM.

      I suggest you try to get a grasp what a classpath is (and what a PATH is a MANPATH and a LDPATH etc.)

      If you have trouble how to configure your classpath in Eclipse ask a coworker.

      As a hint, check the .clasthpath file in your project. There is no need to be able to write such an XML file, but you should easily see that the classpath is composed top down from the lines in that file.

      You always should exactly know which class is loaded from where, if you don't know that it is your fault and not the IDEs.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  30. Re:Welcome Programm Language #2.342E13248213432371 by MichaelSmith · · Score: 1

    Eclipse already has about seven programming languages built into it in the form of custom xml schemas misused as procedural scripting languages.

  31. D programming language by Anonymous Coward · · Score: 0

    I think what you are looking for is called D.

    1. Re:D programming language by shutdown+-p+now · · Score: 1

      No, it's not. No language that requires GC for its basic functionality can be a proper C replacement.

    2. Re:D programming language by euroq · · Score: 1

      D is not a language that requires GC for its basic functionality. It is built into the language, yes, but it is not required and can be turned off - either in whole or in part. In other words, you can write a program that has no GC, and you can also write a program that only uses GC in some classes or even some fields of a class.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
  32. Is it worth the trouble? by Anonymous Coward · · Score: 0

    Really type inference does NOT improve readability, someone taking a first look at the code will have to go all the way to the method declaration to know what the(hell) type of a variable.
    And also no parenthesis? really? Worst Idea I ever herd of, this just takes away the formality Java is admired for and also those setters/getters really suck, they make the language loose and will cause troubles when using reflection since they are not really fields.
    The closure thing is ... well I wouldn't say it is bad, it's just about getting used to.
    But I really didn't like their flavour of switch, the ability of falling through, although requiring some additional care, is really the core feature of the switch, I use it quite often and it's just great because it allows a simple structure to represent multiple values taking to a single block of code, I really think that was unnecessary and mostly it will just be something "cool" that no one will use.

    Anyway maybe someone find use for it, but to me it is just another language I don't like and don't want to deal with.
    And I really think they should bother more at contributing to the Java language itself (like helping out with the OpenJDK) than wasting their time with another language to transform ten simple lines of code into a thousand redundant lines of terrible generated code.

    1. Re:Is it worth the trouble? by euroq · · Score: 1

      Really type inference does NOT improve readability, someone taking a first look at the code will have to go all the way to the method declaration to know what the(hell) type of a variable.

      If you have to go all the way to somewhere else, then one shouldn't have used type inference. It DOES improve readability in small methods.

      But I really didn't like their flavour of switch, the ability of falling through, although requiring some additional care, is really the core feature of the switch, I use it quite often and it's just great because it allows a simple structure to represent multiple values taking to a single block of code, I really think that was unnecessary and mostly it will just be something "cool" that no one will use.

      I've always thought the Java switch was severely hampered by it's way of matching to C's switch. It only works on convertible int values (and later Enums). There's so many places where switching on Objects and using .equals() would have made more readable and natural code.

      The ability to fall through is not the core feature of switch. I say this in confidence because I'm sure this feature is used in less than 1% of cases ever written. (Sorry, no citations available, but I've been around the block and I'm just sure of this)

      That being said, in my opinion, case block ends should NOT default to going to the next case block as they do in C/Java, although it would be nice to have the OPTION of doing so - and in either situation, the programmer must be explicit on what they intend (so you must ALWAYS have a break or a continue at the end of the case block). For example,

      switch (value) {
      case 0: print("zero"); break;
      case 1: case 2: print("12"); continue case;
      case 3: print("3"); // compiler error, there is no break or continue case
      case 4: print("4"); break;
      }

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
  33. Eclipse on a good day by Chetchez · · Score: 0

    Building Workspace.......................*crash*

    1. Re:Eclipse on a good day by Doc+Ruby · · Score: 1

      Never happened to me, on either Ubuntu or Windows 7, for many projects for several years. Usually on 2-5 year old HW, with moderate RAM.

      It sounds like it's probably your fault.

      --

      --
      make install -not war

  34. Misleading headline by bsv368 · · Score: 1

    This has been out for a while. It shipped with the last major release of Eclipse. In June.

  35. does it doe anything groovy doesn't? by Foofoobar · · Score: 1

    simple answer... no. And groovy is easier to read and code.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:does it doe anything groovy doesn't? by dhasenan · · Score: 1

      Well, static typing, but you have groovy++ for that.

  36. I actually tried it by Anonymous Coward · · Score: 0

    Posted my experience here:
    http://longpants2.posterous.com/first-experience-with-eclipses-java-killer-xt

    I want to use it, but I can't understand why it's missing this *one* important feature???

    1. Re:I actually tried it by bytesex · · Score: 1

      Had to laugh though - you're using Java mainly to write static stuff ? Why not use C then ? I mean, I'm a proper C-head (no C++ for me thank you), but I can't help but wonder: if you prefer not to use objects in an OO language, why use an OO language at all ?

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
    2. Re:I actually tried it by longpants2 · · Score: 1

      I haven't used C or C++ in the last 10 years, so I'm a bit rusty. Java has a rich ecosystem, and although I use OO in my coding, I also like to bring in Functional Programming concepts where possible. So that means favoring immutablility, and marking methods as 'static' when they don't need to rely on any state from class instances.

    3. Re:I actually tried it by euroq · · Score: 1

      Just because a language has a feature doesn't mean it should always be used. By your argument, Java shouldn't even have static methods/fields because it's an OO language.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
  37. I actually tried it by longpants2 · · Score: 1

    Posted my experience here:
    http://longpants2.posterous.com/first-experience-with-eclipses-java-killer-xt

    I want to use it, but I can't understand why it's missing this *one* important feature???

  38. Kernighan and Ritchie, redux? by Anonymous Coward · · Score: 0

    Am I the only one who is reminded of "Software Tools", and RatFOR?

  39. Being an infrequent poster... by Anonymous Coward · · Score: 0

    ...is sometimes intimidating. However, I can say with a fair amount of certainty that this is the GREATEST idea since Mono.

  40. haskell, scala, agda, coq (is more needed?) by Anonymous Coward · · Score: 0

    There are already many good programming lanuges out there.

    Why not simply use scala? (a language known to have superb features and a user base)

    I don't think the world needs much more than
    haskell, scala, agda, coq
    concerning the technical features.

  41. Graph Language by Doc+Ruby · · Score: 1

    I'm not interested in some tweaks to syntax that save a few lines I type automatically (or that Eclipse could automatically generate) in Java already. The overhead of learning a new language at all, with its typos and brainos, is bigger than any productivity or accuracy benefit it brings.

    What would be useful would be a language that deterministically compiles to a runnable logic graph, and back from flowchart to text, that's as straightforward to program lexically in as Java, which we already know. And that runs on the JVM. That would be a useful new language. It should allow more multiprocessing, which hasn't been at all tapped in today's multicore CPUs with correlated parallel IO streams and structured relations selecting among many object datastructures dominating the runtime environment. New CPUs are coming bundled with FPGA, and every CPU has a parallel MAC array ASIC it can orchestrate from disk, net and memory DBs. Something really new that's dataflow, which still uses the old lexical tools, would really go bang.

    The rest is like the "perfect text editor" that most programmers dream of writing, that is surely no better than emacs - or rather, than Eclipse. Not worth the effort to create, or to learn, compared with what that effort could produce using the language/editor/IDE, but writing more executable code rather than more tools that get you only a little further.

    --

    --
    make install -not war

    1. Re:Graph Language by sgt+scrub · · Score: 1

      It should allow more multiprocessing

      I thought that was what JavaSpaces was all about, ie. Linda for Java. I think there is Lucid for Java but not exactly sure.

      --
      Having to work for a living is the root of all evil.
    2. Re:Graph Language by Doc+Ruby · · Score: 1

      I don't see where JavaSpaces can be programmed with graphs, with conversion back and forth between text and graphs.

      I don't see that there's a Lucid compiler to JVM bytecode.

      Perl used to have a feature where the runtime would dump the object graph it compiles the source text into, which might have been a platform for converting a graph dump to source text. But though there are some ways to compile Perl to JVM bytecode, I don't see any evidence that Perl even supports the graph dump anymore.

      --

      --
      make install -not war

    3. Re:Graph Language by euroq · · Score: 1

      I'm not interested in some tweaks to syntax that save a few lines I type automatically (or that Eclipse could automatically generate) in Java already. The overhead of learning a new language at all, with its typos and brainos, is bigger than any productivity or accuracy benefit it brings.

      I believe there's more than that. This is trying to fix some of the problems (or lack of features) that modern programming languages which have come out since Java first came out. Closures are a big feature - lack of parenthesis and semi-colons aren't. Type inferences are a nice thing. What I see promising in this is that I don't have to learn a new language... it's more like the next version of Java.

      I don't think it's done yet and I'm not ready to start some programming projects in this language yet, however. That being said, I like the idea of it.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    4. Re:Graph Language by sgt+scrub · · Score: 1

      The reason I highlighted "It should allow more multiprocessing" was to point out that I was only commenting on that part of your post. I thought maybe you needed something java'ish for a project. A graph to source language sounds familiar. It makes me think of squeak. Actually it sounds a lot like a RAD. Do you have a link that better describes a graph dump? It sounds interesting, conceptually.

      --
      Having to work for a living is the root of all evil.
    5. Re:Graph Language by Doc+Ruby · · Score: 1

      Java 7 has closures. And these type inferences are poorly implemented, especially conflicting with reflection.

      These are some tweaks to syntax, especially the type inferences.

      --

      --
      make install -not war

    6. Re:Graph Language by Doc+Ruby · · Score: 1

      Sorry I expected more than you prompted with the quote.

      Running perl -Dx (perl must have been compiled with -DDEBUGGING ) dumps the Perl op code tree that perl compiles the script into. There is some discussion of the architecture, some discussion of the tree, a example walkthru and some documentation of the facility, as well as work using the system.

      But it looks like (especially in the last several years) more "Perl call graph" work focuses on lexically parsing the Perl source. Which to me seems a great waste of this fascinating facility. Even though the graph is of a stack machine, not dataflow exactly, it seems like an interesting facility to target with a graph editor.

      --

      --
      make install -not war

    7. Re:Graph Language by euroq · · Score: 1

      Java 7 has closures.

      Really? I couldn't find any information on it in the release notes here: http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html I've heard people talking about it but I thought it didn't make it in.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    8. Re:Graph Language by Doc+Ruby · · Score: 1

      You're right - it's Java 8 that has closures, not Java 7.

      --

      --
      make install -not war

  42. April fools? by Anonymous Coward · · Score: 0

    this made me laugh. This is a wtf

  43. Urgh by Anonymous Coward · · Score: 0

    "Parenthesis for method invocations are optional, if the method does not take any arguments. Semicolons are optional and even the return keyword doesn't need to be specified. The result of the last expression in a method definition is treated as the implicit return value." - Urg. I like my code to be neat and tidy, and this is just a recipe for coder lazyness and inconsistency. Really, is ending your statements with semicolons so hard? Is going 'return result;' so fucking hard?

    And switching on an instance class? That's the most obvious reek of "doesn't understand polymorphism" possible. Ever damn textbook uses a shape decoder as the canonical antipattern example..

  44. barely the problem of macro systems. by luis_a_espinal · · Score: 1

    The problem with languages with macros is that unlike, say, Smalltalk, you generally never know when macros might apply when and so change the meaning of what you are looking at unless you understand the *entire* program...

    That seems to be more a problem of encapsulation, coupling and cohesion than anything else. Seriously, if a change in a macro is such that you do not know how it will affect a system, then either this is a macro version of a god object (does too much, or does something incoherently); or there is an abstraction leakage in the macro (the macro purposes, regardless of size, is not discrete); or the macro is poorly documented and people are using it wrong because of it.

    What you described is exactly the same that happens if you make a change to the implementation of a class or component or procedure where the aforementioned artifact exhibits the same problems in encapsulation, coupling and/or cohesion. Don't delude yourself into thinking that this is an innate problem unique to macro systems.

    People can shit-code crap that exhibits side-effects when subjected to supposedly internal changes. You gotta know your tools, but most importantly, you got to know how to code and design software.

    1. Re:barely the problem of macro systems. by Paul+Fernhout · · Score: 1

      You make a good point about layers, but in practice, macro abuse seems worse. Macros also make it hard to have good development tools (like Smalltalk has) because the syntax of the language can change so much through macros (at least for something like C).

      An example just to show you what textual macros can do from: http://stackoverflow.com/questions/652788/what-is-the-worst-real-world-macros-pre-processor-abuse-youve-ever-come-across

      #include
      #define System S s;s
      #define public
      #define static
      #define void int
      #define main(x) main()
      struct F{void println(char* s){std::cout s std::endl;}};
      struct S{F out;};

      public static void main(String[] args) {
          System.out.println("Hello World!");
      }

      That just seems like a very different thing than the fact that when I change a class it may affect how other classes behave -- even though, it's true, there is some abstract logical equivalence.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    2. Re:barely the problem of macro systems. by luis_a_espinal · · Score: 1

      You make a good point about layers, but in practice, macro abuse seems worse. Macros also make it hard to have good development tools (like Smalltalk has) because the syntax of the language can change so much through macros (at least for something like C).

      An example just to show you what textual macros can do from: http://stackoverflow.com/questions/652788/what-is-the-worst-real-world-macros-pre-processor-abuse-youve-ever-come-across

      #include #define System S s;s #define public #define static #define void int #define main(x) main() struct F{void println(char* s){std::cout s std::endl;}}; struct S{F out;};

      public static void main(String[] args) { System.out.println("Hello World!"); }

      That just seems like a very different thing than the fact that when I change a class it may affect how other classes behave -- even though, it's true, there is some abstract logical equivalence.

      I'm sorry but that begs the question: why do it? This is a complete violation of everything we have learned about good software development for the last 3-4 decades. More than that, it defies common sense. And that lack of common sense is not in any way related to the power of macro systems, or the nature of macro systems in general.

      Indeed macro abuse is more prevalent, but that still sits squarely on the developer's fault, not on the macro system. They are more prevalent because they are easier to abuse, but so are pointers. Or object systems. Or meta-programming. And that can still be said with any other powerful mechanism of any type.

      I see like this: Here is a powerful tool. Use intelligently. You screw yourself up with it, or screw somebody else up, it's on you, not the tool.

      Also, I don't necessarily agree that macros makes it hard to get good development tools. Maybe harder relative to a system without macros, but not necessarily hard. Take a look at Eclipse CDT. That's what I'm using for C/C++ development, and it can tell me right away how a macro application is going to expand, or where a macro is invalid (that it cannot expand into something that can compile.)

      Just as there have been people who have fucked it up with macros, there have been people who have done good work with extensive macro usage. With the vast body of knowledge we have accumulated in the last couple of decades on how to build software, we can't assign blame to the tool, not even partial blame.

      We are not in the early 70's when people were discovering these stuff, using them without a body of knowledge for guidance. There is no excuse anymore to do stupid things like that, and we can't simply ignore a tool if the tool is right for the job simply because a horde of morons shoot themselves in the foot with it.

    3. Re:barely the problem of macro systems. by Paul+Fernhout · · Score: 1

      I still feel the big lesson learned since the 1970s is that macros are problematical. :-) It is not just what languages add, it is also what they leave out.

      Most people using languages with macros like C/C++ most of the time are just assuming things about the codebase syntactically that might not be true.

      Lisp macros are a bit different though, because they are usually just about whether an expression gets evaluated or not before being passed into a function.

      Glad to hear macros are working out for you and you have found tools that make it easier.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  45. Hard to debug != feature by sgt+scrub · · Score: 1

    The thing I hate most about javascript is it allows the coder to decide to be lazy with semicolons. Now, on purpose, someone has decided to include parenthesis as well?! IMHO "You can write hard to debug code" is not a feature. Give me a JIT language that is identical to C/C++, Pascal, or Fortran in syntax and features not a "looks and works kinda like language" and I'll stand at attention.

    optional semicolons: bummer.
    optional parenthesis: bummer.
    resembles Java's syntax: resembles the syntax that resembles C++ but not really ...bummer.
    operator overloading: why no link? This is the only thing I thought was interesting.
    compiles to readable Java code: Another compiles to language to be JIT'd by the other language's JIT... language? That just hurts.

    BTW, this is opinion not flame. If you like Java, that's cool.

    --
    Having to work for a living is the root of all evil.
    1. Re:Hard to debug != feature by euroq · · Score: 1

      Hmmm, you seem to be complaining more about JavaScript and Java than this new language. This language is meant for people who use Java, not people who don't like it.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    2. Re:Hard to debug != feature by sgt+scrub · · Score: 1

      I don't dislike Java. Well, I like Scala which requires the JVM. Anyway. I was using JavaScript as an example of a language that lets people leave out grammar in their code. Sorry to confuse.

      --
      Having to work for a living is the root of all evil.
  46. I Know Xtend's Parents!!! by LifesABeach · · Score: 1

    Xtend is the love child of Java spending the night with Python, and it looks like Python took the walk of shame.

  47. WTF!? by Anonymous Coward · · Score: 0

    WTF?
      Eclipse runs quite okay on my Pentium 4 with 1.7 Ghz whereas Netbeans would take the whole CPU time.
    What is your preferred IDE?
    Gedit?

  48. Wake me up when the Scala comparison is done by delirium28 · · Score: 1

    Seriously, this smells so much of Scala it isn't even funny. I'm all for another great language on the JVM, but how is this different from Scala? A lot of the concepts are the same, and the syntax is likewise quite similar. Combine this with other Scala knock-offs like what JetBrains was doing and it's just sad.

    People keep talking about how Oracle is killing Java, yet this NIH (Not Invented Here) syndrome that's plaguing the non-Java world is just as bad if not worse. Let's rally behind Scala, fix it up as you see fit, and get some great tooling behind it. That seems to be the biggest issue with Scala to date. IntelliJ is nice, but I like Eclipse, and that just sucks even with the recent push.

    --
    Who is John Galt?
    1. Re:Wake me up when the Scala comparison is done by euroq · · Score: 1

      To me, the hugest difference between this and Scala is that this compiles to Java, not bytecode. It makes it easier for me (and perhaps others) to give it a try because it does.

      Full disclosure: I'm not actually going to try it out yet :) According to the posts in this conversation, it's really annoying to install and seems to have some early bugs, and it doesn't support static methods.

      --
      Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
    2. Re:Wake me up when the Scala comparison is done by delirium28 · · Score: 1

      I honestly wouldn't let that hold you back. It's almost as bad, if only because you don't control how the resulting Java code looks, and the mapping from the Java code back to your original code may be difficult. :-) I'd rather see the Eclipse foundation step up and help make Scala a first-class language in Eclipse rather than letting Typesafe struggle to do it on their own.

      --
      Who is John Galt?