Slashdot Mirror


Gosu Programming Language Released To Public

llamafirst writes "Guidewire Software released the Gosu programming language for public availability. Gosu is a general-purpose programming language built on top of the Java Virtual Machine (JVM). It is object-oriented, static typed, imperative, and 100% Java compatible (use/extend Java types, implement Java interfaces, compile to Java bytecode). It has type inference (very readable code yet static typing!), in-line functions that you can pass as objects (closures / lambda expressions / blocks), enhancements (inject methods + properties, even on Java types!), and simplified generics. Gosu is provided via the Apache License v2.0. The language itself is not yet open source, although that is planned for a future community release. You can read a complete introduction to the Gosu language, a comparison to other languages, and syntax differences from Java."

330 comments

  1. Wonder how this turns out... by IronSight · · Score: 1, Interesting

    With the news recently on how java is going to be changing in oracle's hands, people seem pretty nervous in just the java side side of things let alone a language that runs over java. Will be interesting to see how this develops.

    1. Re:Wonder how this turns out... by symbolset · · Score: 0, Troll

      The epitaph will read "and nothing of value was lost."

      --
      Help stamp out iliturcy.
    2. Re:Wonder how this turns out... by kaffiene · · Score: 4, Insightful

      You have to be some kind of uber noob to think that Java and the ecosystem it has engendered could ever be called "nothing of value". There are more jobs in Java and open source projects on Source Forge in Java than in any other language. Java is not everyone's cup of tea - neither are other significant languages like C or LISP, but to pretend that Java, like any of these languages offers "nothing of value" is either arrogance or ignorance beyond belief.

      I know that /. no longer caters to a technically literate crowd but you take the cake. I feel stupider for even bothering to reply to you.

    3. Re:Wonder how this turns out... by rve · · Score: 1

      Replacing Java with another JVM language doesn't help you one bit if you have a problem with relying on Oracle software

    4. Re:Wonder how this turns out... by bart416 · · Score: 1, Insightful

      Honestly the main issue with java is when and how people use it. To give an example of when not to use java: You don't want to be writing a heavy 3D game engine in java, sure it'll work. But C++ will be a lot faster (to the point where it's clearly visible to the user). At that point you have to wonder if java is the correct solution. C++ might offer a bit more difficulty to write the initial program and will punish you more severe if you do make a mistake. But the end result is worthwhile. Java is good for office applications, 2D games and other non-CPU and graphics intensive tasks. On the how people use it issue,they wish to force the object oriented on everything. Objects used right make code easy to manage and read. Objects used wrong add several layers that you have to fight your way through when debugging. Not to mention as java is compiled to byte code that keeps most of the original code in the same structure. This means you'll actually have to go through that much layers of objects to execute something. On the other hand in C++ the optimizer will most likely try to take care of it and reduce the complexity. This is what annoys me about most java programs in fact. They use a large amount of objects just cause they can, not cause they should. Simple procedural code is often easier to read and faster in most cases, so why bother wrapping it in an object of its own and then calling it from within the object?

    5. Re:Wonder how this turns out... by Anonymous Coward · · Score: 0

      *more stupid

      it's already happening!

    6. Re:Wonder how this turns out... by danieltdp · · Score: 1
      --
      -- dnl
    7. Re:Wonder how this turns out... by AltairDusk · · Score: 1

      I'm no fan of Java but I still agree with you. Plenty of things have been coded in Java which could be considered "something of value", whether you like or hate the language that does not invalidate the work that has been done in it.

    8. Re:Wonder how this turns out... by Rockoon · · Score: 1

      Notice how they dont mention what C compiler was used (or any information at all, actually!), but detail explicitly lots of things about java versions, libs, and vm's.

      Basically... link is worthless stroking..

      --
      "His name was James Damore."
    9. Re:Wonder how this turns out... by ChrisMP1 · · Score: 1

      Holy crap. You take the cake for jumping to conclusions - somehow I think it was a joke. I'm assuming he's one of those people you mention for whom "Java is not everyone's cup of tea".

      --
      <sig>&nbsp;</sig>
    10. Re:Wonder how this turns out... by danieltdp · · Score: 2, Insightful

      It was runnning the original game. You should be aware that 90% of the code that is running is OpenGl and Java does not implement it. It uses a wrapper to the locally available native OpenGl libraries. So the only overhead is the JNI calls, which have been being reduced a lot on recend versions.

      The point is: any language can do it reasonably well. 3d is done on the video card, not on the compiler or he VM.

      --
      -- dnl
    11. Re:Wonder how this turns out... by psyclone · · Score: 2, Informative

      Stop spreading the old Java FUD. Please do some research if you feel so strongly about how someone else chooses to do their work. I don't care what languages you use, why should you care what I use?

      This is a mature 3D library + engine:

      http://www.jmonkeyengine.com/engine-core/

    12. Re:Wonder how this turns out... by luis_a_espinal · · Score: 1

      Replacing Java with another JVM language doesn't help you one bit if you have a problem with relying on Oracle software

      1. Most people don't have a problem relying on Oracle software (and by that I mean Oracle's commercial software and not the libs under the java/javax namespaces).

      2. Your statement is pretty much non-sequitur. Seems more like a problem statement looking for a problem to reference to.

    13. Re:Wonder how this turns out... by Daniel+Phillips · · Score: 1

      Oracle is the new Microsoft. Java is the new C#.

      --
      Have you got your LWN subscription yet?
    14. Re:Wonder how this turns out... by t2t10 · · Score: 0, Troll

      but to pretend that Java, like any of these languages offers "nothing of value" is either arrogance or ignorance beyond belief.

      Java has influenced industry enormously, and in some ways for the better (e.g., garbage collection is now semi-acceptable to people). However, technically, Java has contributed nothing: it wasn't state of the art even when it came out, it has numerous serious design problems, and its libraries are bloated and badly designed too.

      I know that /. no longer caters to a technically literate crowd but you take the cake. I feel stupider for even bothering to reply to you.

      Yeah, same here: you really do take the cake. I mean, how could any even moderately technically literate person believe that Java has intrinsic technical merit? The best thing one can say about Java is that it's so bloated and poorly designed that it will ensure job security for programmers for decades to come.

    15. Re:Wonder how this turns out... by Rockoon · · Score: 1

      3d is done on the video card, not on the compiler or he VM.

      3D may be RENDERED with the video card, but it is not "done on the video card." The CPU in a game still handles most culling, and so forth, using a scene graph.

      ..and here you are talking specifically about the Quake 2 engine, which all us geeks know, HAD to do a lot of CPU work during rendering when it was released. There was no margin for a lot of over-draw in that era, so the Quake 2 engine is actually dominantly CPU bound, using the GPU only for rasterizing triangles, and only after the CPU performs a lot of work making sure the triangle might be visible.

      --
      "His name was James Damore."
    16. Re:Wonder how this turns out... by RightSaidFred99 · · Score: 0

      I'm primarily a .NET developer and do some Java coding as needed. I develop a UNIX CLI tool in Java that talks to a WCF web service - chosen because it was the only remotely possible way to get Kerberos working from UNIX to a WCF service so it can be pseudo password-prompt free.

      I was going to post to defend Java a little, but really you're pretty much right. The only thing Java has going for it is cross-platform, which is why I'm using it. I've dabbled in Java for server side development, and it would be a huge step backwards in every way. .NET is just ridiculously nice.

      Maven is kind of an OK idea, and I kind of like it because I don't have to hunt around for library dependencies like you do with .NET - I wish Microsoft would add something similar, though of course they'd do it 100X better. And I think you're overstating how much Java sucked back in the day - it was obviously a good, groundbreaking idea at the time if you look at its overall success.

      Speaking at least in terms of enterprise application development, you'd be crazy to choose Java over .NET unless you simply must run on UNIX. It's inferior in just about every way.

    17. Re:Wonder how this turns out... by danieltdp · · Score: 1

      And how do you explain the performance similarities then. AFAIK he run quake 2 game, original compilation for the bechmark. This is why there is no detail on compiler flag

      --
      -- dnl
    18. Re:Wonder how this turns out... by zmooc · · Score: 1

      For games, yes. Games are not a good example of stressing your hardware, especially not on modern hardware. Also they're very forgiving; nobody's going to complain if the framerate drops below 30 every now and then.

      However, there are some things Java really cannot do out of the box. The most important being reliable realtime programming; there's always a chance the garbage collector fucks up your sub-millisecond reactiontime, even if the compiled java code actually runs faster than a C-counterpart, which it often does. An then there's the lack of a platform independent way to give a thread realtime priority in Java. Another problem is that current Java VMs do not use vectorization (you know, mmx, sse), which makes C-programs that can use it much faster than their Java-counterparts.

      Nevertheless, for programs that do not have such requirements or things that pay my living, Java is #1. When working with tight deadlines and very expensive calculations, C is the better choice.

      --
      0x or or snor perron?!
    19. Re:Wonder how this turns out... by danieltdp · · Score: 1

      I have no illusion that Java is not fit for every scenario. My only intention was to point out that people get outdated about Java's capabilities. I work on the oil industry and a lot of big time software vendors are migrating their application products to 100% Java. We are talking about parallel seismic processing of files with 1terabyte worth of data and 3d visualization of this kind of monster. Companies like Halliburton, Landmark and Schlumberger are going this direction

      See, for example JavaSeis

      --
      -- dnl
    20. Re:Wonder how this turns out... by Rockoon · · Score: 1

      The original Quake2 would have been compiled with optimizations for the Pentium Pro's and K6's...

      ..and oh look, for his K6 benchmark, he barely pulls off 50% of the performance of the C binary.

      --
      "His name was James Damore."
    21. Re:Wonder how this turns out... by zmooc · · Score: 1

      Oh I make no assumptions about your illusions, in fact I think we're on the same side. However, I wanted to clarify that java being suitable for 3D stuff doet not mean it can do _everything_. I don't think the seismographs that provide input for JavaSeis run java;-)

      --
      0x or or snor perron?!
    22. Re:Wonder how this turns out... by danieltdp · · Score: 1

      Actually, the data acquisition is not fast. Maybe something like 5gb per day is usual. But this go on for months and ends up as a huge dataset.

      After the data was gathered the problem arises when the processing starts. This is the sensitive, number intensive part and the industry is starting to do it in Java!

      --
      -- dnl
    23. Re:Wonder how this turns out... by symbolset · · Score: 1

      Java's just a language. It's not important. All that code can be ported to a language that doesn't have Larry Ellison attached to it. Most of the work happens in libraries anyway. Projects that are dependent on a specific languages or platforms that are not fully free are castles built on sand. Eventually someone will erode away the beach, and the castle will fall down. Always. Nothing of value was lost because it was a tissue fort - a mockup - a grand illusion the whole time. It was a distraction, and a lot of people didn't fall for it.

      --
      Help stamp out iliturcy.
    24. Re:Wonder how this turns out... by RightSaidFred99 · · Score: 1

      Haha. As if you can alter reality by modding someone down.

      "Wow, since I modded down that guy on SlashDot I disagreed with Java has suddenly become contemporary and relevant again!"

    25. Re:Wonder how this turns out... by t2t10 · · Score: 1

      Well, fortunately, Java seems to be self-destructing and spinning out of control, adding legal and community troubles to its technical problems. Maybe in another decade or so, it will be about as relevant to mainstream computing as COBOL.

    26. Re:Wonder how this turns out... by kaffiene · · Score: 1

      I have three decades of software engineering experience. I'm no newbie.

      I've coded large systems in C, C++, LISP, Delphi, C#, Java, Javascript, Visual Basic.

      It's my opinion that Java is an excellent language for many software engineering purposes. If I am going to work on large systems with other people, I'd gladly choose Java over Javascript or C++. And the reason that Java is a good choice for those contexts and Javascript or C++ isn't, is because Java is very well designed.

      Being a good language is about getting stuff done not being buzzword compliant or "state of the art". If you judge the worth of a programming language by how cool it is rather than how useful then I'd say you're not the target market for Java anyway. It's used to actually make large stable systems, not for being pretentious about what whizzy features your language supports.

      And, as it happens, I think that Java has made some significant contributions to software engineering. You mentioned making garbage collection acceptable. It's also a significant experiment in attempting "write once, run anywhere" - even the degree to which that goal were not met are instructive. The HotSpot JIT technology was extremely high tech and significant. For a VM to produce code that sometimes out performs C is extremely significant.

      Anyway my actual claim was that the influence on the industry which you acknowledge that Java has is "something of value". Yes, a lot of the ideas came from Smalltalk and LISP, but neither of those languages managed to influence mainstream software engineering to almost ANY degree. Java *did* make their ideas popular and that is significant in it's own right. And post Java, those ideas are being re-examined and re-implemented in a number of new languages. I think Java helped make that happen.

      I think that C was a very similar language - not at all the kind of thing that pretentious academic wankers would write papers about, but very good for getting stuff done. I'm a doer, not a wanker. I suspect that I know what camp you're in.

    27. Re:Wonder how this turns out... by kaffiene · · Score: 1

      In the real world, Java gets a lot of shit done. Buzzwords don't.

    28. Re:Wonder how this turns out... by Zancarius · · Score: 1

      However, I wanted to clarify that java being suitable for 3D stuff doet not mean it can do _everything_. I don't think the seismographs that provide input for JavaSeis run java;-)

      This actually made me smile, because it reminds me of a story.

      When I was an undergrad, I recall an instructor of mine once demonstrating a research project of his that was superficially written entirely in Java. That is, the UI and much of the frontend was Java with the exception of the number crunching libraries. Being as it was a project with a major national laboratory, he and his assistants used Java wrappers around Fortran to interface with libraries (surprise! written in Fortran many years prior) that did the heavy lifting. Unsurprisingly, the Fortran code had changed little over the years and was well-tested, well-established, and very fast. I don't know the specifics since he had merely demonstrated it to us, but I thought it was a pretty impressive display of intelligent code reuse that seems lost on a lot of people these days. It also illustrated that certain domains are better left to certain languages, or more correctly, libraries that have been around long enough to have a highly deterministic and well understood nature when the object of the project isn't necessarily to rewrite everything.

      I realize this is slightly tangential to your point, but I wanted to share since I feel it is relevant and maybe vaguely interesting to you.

      --
      He who has no .plan has small finger. ~ Confucius on UNIX
    29. Re:Wonder how this turns out... by dave87656 · · Score: 1

      I know that /. no longer caters to a technically literate crowd but you take the cake. I feel stupider for even bothering to reply to you.

      Don't lose too much sleep over those kinds of posters. I know one in person and they are very simple people who try to compensate for lack of knowledge with one-line derogatory statements against anything they don't understand.

    30. Re:Wonder how this turns out... by Zancarius · · Score: 1

      I have nowhere near a fragment of the experience you do in the realm of application programming. I do want to tip my hat to you for being one of the (few!) sensible voices in this discussion that has unsurprisingly turned anti-Java. (Incidentally, I love the signature link--I recall reading it quite some time ago from another thread you posted in and found it highly entertaining, mostly because it's true!) I suspect I know why...

      Being a good language is about getting stuff done not being buzzword compliant or "state of the art". If you judge the worth of a programming language by how cool it is

      Zing! You caught it! Ruby fits more or less into this description (especially from the "cool" factor). Yet didn't Twitter migrate their message queuing away from Ruby and into Scala? (Which is just the JVM anyway...) So much for "cool" really making a huge difference...

      It's used to actually make large stable systems, not for being pretentious about what whizzy features your language supports.

      You make a ton of great points, and I think this one is the best. It's also possibly one of the reasons why some factions really dislike Java. Admittedly, I even fell into that camp when I was first learning it.

      But you're absolutely spot on. Java is where it is precisely because of its strong type checking and generally brilliant design. The complaints I see here seem mostly directed toward the "clunkiness" that Java seems to represent, and I think that's more a fault of Java's age--not that I'd really label it as a fault. .NET and the CLR regardless of their shortcomings seem to me to be a nod in the direction of Java. That MS jumped onto the bytecode VM bandwagon and borrowed an overwhelming majority of their ideas from the JVM says something about the latter's influence. I know you were probably being modest in this regard, possibly so some of the anti-Java crowd didn't see it as a glaring bias, but Java's influence (and maybe more specifically the JVM's) is understated far too much.

      Thanks for the perspective from someone of your esteem! It's educational to me.

      --
      He who has no .plan has small finger. ~ Confucius on UNIX
    31. Re:Wonder how this turns out... by t2t10 · · Score: 1

      Being a good language is about getting stuff done not being buzzword compliant or "state of the art". If you judge the worth of a programming language by how cool it is rather than how useful then I'd say you're not the target market for Java anyway. It's used to actually make large stable systems, not for being pretentious about what whizzy features your language supports. I think that C was a very similar language - not at all the kind of thing that pretentious academic wankers would write papers about, but very good for getting stuff done. I'm a doer, not a wanker. I suspect that I know what camp you're in.

      But that's what Java and C++ are: languages bloated by "whizzy features" and "buzzword compliance". Look at the people who designed many of the recent C++ and Java language features and the Java libraries: it's a lot of "academic wankers" (your words) who had failed to push their language features in their own obscure languages and then got hired by Sun and pushed their untested academic crap into the Java language and the libraries.

      And the reason you use it is not because you know any better or have any first-hand reason to believe that it's more productive (your list of languages says that you don't), it's because those same "pretentious academic wankers" taught them to millions of students who then went into industry and set the current de-facto standards.

      Would I prefer to use Java over JavaScript, C, or C++? You bet. But that doesn't make any of those languages well-designed.

    32. Re:Wonder how this turns out... by t2t10 · · Score: 1

      That's a funny statement about a language that succeeded because of extreme hype and buzzwords.

    33. Re:Wonder how this turns out... by kaffiene · · Score: 1

      Maybe for the first half a decade

    34. Re:Wonder how this turns out... by t2t10 · · Score: 1

      Your signature says otherwise: the hype and lies about Java are obviously continuing, courtesy of its large army of fanboys.

    35. Re:Wonder how this turns out... by kaffiene · · Score: 1

      So, you really think that HYPE has been powering enterprise for the last 15 years?

      Man, HYPE is pretty damn effective

    36. Re:Wonder how this turns out... by kaffiene · · Score: 1

      C++ is an academic language???

      FFS!

      You are a moron. Goodbye.

    37. Re:Wonder how this turns out... by t2t10 · · Score: 1

      C++ is an academic language???

      As I was saying: C++ and Java are both widely used commercial languages with tons of "whizzy features" and "buzzword compliance" designed into them by academics.

      Funny thing is that you do exactly what you accuse other people of doing: you go for whizzy academic features and buzzwords.

    38. Re:Wonder how this turns out... by t2t10 · · Score: 1

      So, you really think that HYPE has been powering enterprise for the last 15 years? Man, HYPE is pretty damn effective

      This surprises you? Many of the enterprises using Java needed to be bailed out because they couldn't even keep their finances straight or make responsible loans. Many of these enterprises have huge cost overruns on their IT projects. Large enterprises primarily select languages based on long-term support, vendor support, interoperability, and programmer availability, not quality; they don't have a choice.

  2. Alright! by Anonymous Coward · · Score: 1, Interesting

    Ads disguised as news! excellent.

    1. Re:Alright! by Anonymous Coward · · Score: 0

      because a new programming language is of no interest to nerds, right? you do realise that this is from Apache, so hardly a commercial advertisement, right?

    2. Re:Alright! by icebraining · · Score: 1

      No, this is from Guidewire Software. It's says right there in the first two words. It's licensed under the Apache license.

      But it's still free (in both senses of the word), so I don't get GP's complaint.

    3. Re:Alright! by carsongross · · Score: 3, Informative

      We aren't trying to sell anything to anyone. Well, unless you happen to be an insurance carrier. I assume not.

      We just released our language, and are excited about it.

    4. Re:Alright! by Laz10 · · Score: 1

      Fine then. Convince me (and the rest of the world) that Gosu is better than Scala.

      I read your comparison, but it begs the question. Which features from Scala did you leave out?
      Pattern matching, mixins and co/contravariance generics comes to mind.

    5. Re:Alright! by hesiod · · Score: 3, Insightful

      Convince me Scala is better than Haskell. Convince me cucumbers are better than green peppers. Convince me a bucket of dirt is better than a pile of gravel.

      He doesn't have to convince you of anything, because obviously you have already picked your preferred language and think that anything else is useless.

    6. Re:Alright! by Laz10 · · Score: 1

      I am just pointing out that they have a comparison page which includes Scala, and makes it look like Scala has less useful features than Gosu.

      If they put up a page like that it looks to me like they ARE trying to sell something, despite GP assurances otherwise.

  3. Sounds like Scala by NightWhistler · · Score: 3, Insightful

    From a quick glance it looks like Scala with a more Java-like syntax... I wonder what added benefit they hope to bring.

    I'd be very interested to see an in-depth comparison of the two.

    --
    PageTurner Reader: open-source e-reader for Android with cloudsync. http://pageturner-reader.org
    1. Re:Sounds like Scala by NightWhistler · · Score: 4, Informative

      OK, replying to myself because I obviously didn't have enough coffee yet:

      They list as the benefits over Scala
        - Extensible type system
        - Easy transition from Java
        - Reified Generics

      From those 3 points, only the last one sounds useful...

      --
      PageTurner Reader: open-source e-reader for Android with cloudsync. http://pageturner-reader.org
    2. Re:Sounds like Scala by Anonymous Coward · · Score: 0

      It has a lot of features Java 8 will presumably have but looks almost like C#. I wonder if they're not running into problems with Microsoft there.

    3. Re:Sounds like Scala by shutdown+-p+now · · Score: 1

      I haven't read the docs yet, but how can they claim reified generics and full Java compatibility?

    4. Re:Sounds like Scala by Chrisq · · Score: 1

      OK, replying to myself because I obviously didn't have enough coffee yet:

      They list as the benefits over Scala - Extensible type system - Easy transition from Java - Reified Generics

      From those 3 points, only the last one sounds useful...

      Except that reified generics are available in Scala using manifests. I am not sure what the "extensible type system" means but there are various ways of adding to a type system in Scala. However I agree on not being an "Easy transition from Java". Scala is not really an easy transition from anything!

    5. Re:Sounds like Scala by Anonymous Coward · · Score: 0

      No, Scala doesn't have reified generics. You can get something like reified generics in Scala using manifest that covers some cases. In addition, Scala manifest are experimental, and not a stable part of the language and there is no schedule for when they will be (I still use them though.)

    6. Re:Sounds like Scala by DrXym · · Score: 1
      From a quick glance it looks like Scala with a more Java-like syntax... I wonder what added benefit they hope to bring.

      Well if it were a superset of Java then the answer to that should be obvious. I sense people are getting seriously fed up with Oracle / Sun's glacial development schedule as well as all the legal shenanigans. Java 7 is the Duke Nuke Em of language iterations. If someone produces a Java with extensions (almost like C++ was C with classes originally) then they might jumpstart development again and free it from the withered claws of Oracle.

      I realise of course that there are lots of languages vying to be Java++ (e.g. Groovy, Scala, Clojure etc.). I expect in the end that like C++ vs Objective C that it won't necessarily be the most elegant solution that wins, but the most practical. It will be the one which allows people to preserve most of their existing codebase and provide a seamless transition to something better. The disadvantage to Gosu is it appears to be closed source and that would kill it stone dead as far as most developers would be concerned.

    7. Re:Sounds like Scala by Chrisq · · Score: 1

      No, Scala doesn't have reified generics. You can get something like reified generics in Scala using manifest that covers some cases. In addition, Scala manifest are experimental, and not a stable part of the language and there is no schedule for when they will be (I still use them though.)

      True, you have to implement reified generics yourself using manifest. I have not found any limitations myself yet, but I have to admit that I have only done simple reified type collections.

    8. Re:Sounds like Scala by danieltdp · · Score: 1

      My understanding is that the syntax changes were one of Gosu motivations. The changes were all in the direction to make the language more "easy to read". It almost got some pythonic aura in a sense

      --
      -- dnl
    9. Re:Sounds like Scala by luis_a_espinal · · Score: 1

      It has a lot of features Java 8 will presumably have but looks almost like C#. I wonder if they're not running into problems with Microsoft there.

      They have a copyright on the delegate syntax? </rolls eyes + sarcasm>

    10. Re:Sounds like Scala by M.+Baranczak · · Score: 1

      I am not sure what the "extensible type system" means

      It means that you can add methods or properties to a class without subclassing it. This feature is one of the very few things that I actually like about Objective C.

      http://gosu-lang.org/doc/wwhelp/wwhimpl/api.htm?&context=gosu&src=enhancements&topic=Using_Enhancements

    11. Re:Sounds like Scala by Surt · · Score: 1

      I think the answer is: call any java code, including code involving non-reified generics.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    12. Re:Sounds like Scala by Anonymous Coward · · Score: 0

      You can achieve the same thing is Scala in a rather less direct way by using explicit conversions.

    13. Re:Sounds like Scala by shutdown+-p+now · · Score: 1

      Looks like it. I thought that they're claiming two-way compatibility (as in, Gosu classes usable from Java, as is the case with Scala if you write your classes right).

    14. Re:Sounds like Scala by Surt · · Score: 1

      You can go that way too, but since the java tools don't know about gosu it will look like a lot like a java reflection call, (looking up method by string name, arranging parameters into an array, etc).

      I don't see anything stopping them from refining that in time though.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  4. Yay yet another way too say "Hello World" by JDmetro · · Score: 0

    The following Gosu program outputs the text "Hello World" to the console using the built-in print function: print("Hello World")
    http://c2.com/cgi/wiki?HelloWorldInManyProgrammingLanguages

  5. Equivalent to ABAP or Peoplecode by Anonymous Coward · · Score: 1, Informative

    Guidewire is an enterprise software company, and this is the language they most likely code most of their business logic in.

    Similar to SAP or Peoplesoft (now owned by Oracle), to keep developer mindshare and promote maintainability and exclusivity, they layer on top of the J2EE stack in some way; in this case it's a bytecode compatible Java replacement (Peoplecode, in comparison, was an interpreter invoked by server calls in the J2EE stack - at least in v8.x).

    I think the main reason they're exposing the language widely (as opposed to the above examples) is directly related to the recent Java news by Oracle... bytecode compatible is a key selling point here.

    1. Re:Equivalent to ABAP or Peoplecode by Anonymous Coward · · Score: 0

      I have no idea about what led to the timing of it happening now or the management decision to go ahead with it right now, but as a engineer who knows a lot of Guidewire people, they've been talking about "oh, we should open-source Gosu" for several years starting back when it was called GScript, and more recently "we're going to open-source Gosu, we're just waiting for all the legal and management stuff to be in order."

      Similarly, no idea about how they sold the business case to management, but I'm pretty sure the idea started with some of the engineers working on it going "it would be cool if we could release this outside the company."

  6. built on top of the Java Virtual Machine by countertrolling · · Score: 0, Troll

    I'm scared already... Is doing anything with Java safe these days?

    --
    For justice, we must go to Don Corleone
    1. Re:built on top of the Java Virtual Machine by phantomfive · · Score: 2, Interesting

      The JVM is open source. The patents Oracle has are for the machine, not for compiling to byte code. They aren't Java specific either, anyone with a VM who does JIT compiling could fall under the patents, which is why Microsoft has to pay Oracle for a license.

      In other words, since they are only compiling to byte code, and Oracle doesn't have any patents on that, and they can't (nor desire) to take away people's ability to use the JVM, this isn't a problem.

      The misconception is that if Google hadn't used Java in Android they would have been ok, but if they had used a JIT compiler they likely would have fallen under the patents no matter what language they used.

      --
      Qxe4
    2. Re:built on top of the Java Virtual Machine by MemoryDragon · · Score: 2, Interesting

      It is rather questionable if JIT related patents can hold up in a courtcase, JIT compilation has been around since the 70s Smalltalk and Lisp have been using it for decades.

    3. Re:built on top of the Java Virtual Machine by phantomfive · · Score: 1

      It's not actually that questionable. Patents are rarely overturned because of pre-existing art, and Sun certainly knew about Smalltalk and Lisp when they filed the patent.

      Really, when was the last time you ever heard of a patent dispute being resolved with the patent being thrown out? If one-click-purchasing can hold up, then JIT compiling patents certainly can.

      --
      Qxe4
  7. Another Language by phantomfive · · Score: 4, Insightful

    At one time in my programming life I liked learning languages, I made it my goal to learn pretty near every interesting language from APL to FORTH.

    Then one day I woke up and realized, it isn't the language, you can write good or bad code in any language. It's how you use the language, and how you organize the code that matters most. I realized as long as you have the ability to encapsulate, you can write good code in any language, even in assembly.

    In fact, with a good macro library, I can write code just as fast and well in assembly as in any other language.

    Or, on the other hand, maybe I've fallen into the trap represented by this saying, "The determined real programmer can write Fortran in any language." But I don't think so. :)

    --
    Qxe4
    1. Re:Another Language by mr_mischief · · Score: 1

      As long as you're not writing GW-Basic or COBOL in any language, I think you're not too far gone.

    2. Re:Another Language by Anonymous Coward · · Score: 1, Insightful

      You can write good code in any language but can (a) other people and (b) the compiler understand what you meant? The language enforcing the encapsulation you meant means that someone else using your code will be sure to follow it. Similarly a type system that lets you tell the compiler more about what is going on can allow for better optimizations.

      You are probably right that without good style, it does not matter what language you use, but the language can help.

    3. Re:Another Language by Anonymous Coward · · Score: 5, Insightful

      Perhaps it is tempting to see only encapsulation as the sine qua non in programming languages. However, a programming language does not merely make an algorithm machine readable, but also human readable (eg. yourself after 2 weeks). Therefor, the following properties are important:

      - Conciseness: eg. Haskell is more suitable in representing certain algorithms, as part of the interpretter/compiler makes 'good' choices, you'd have to specify otherwise. The same goes for languages such as Prolog.
      - Manipulatibility: to change a certain aspect of an algorithm (or of a whole system), we need a representation of this aspect. Aspect Oriented Programming, Lambda expressions and meta-object oriented programming are examples of this.
      - Suitability to domain: whether a mathematician or a business process manager reads your code matters. Their experience and expectations differ.
      - lots more...

      Yes, all of it is reducable to a Turing Machine, but languages matter. A lot.

    4. Re:Another Language by phantomfive · · Score: 1

      You can write good code in any language but can (a) other people and (b) the compiler understand what you meant?

      It's assembly, you don't need a compiler. :)

      With comments and well-named labels and macros, assembly isn't too hard for a human to understand.

      --
      Qxe4
    5. Re:Another Language by OneSmartFellow · · Score: 3, Insightful

      it isn't the language, you can write good or bad code in any language

      But, VB makes writing bad code trivial, and writing good code challenging.

    6. Re:Another Language by Anonymous Coward · · Score: 0

      It's assembly, you don't need a compiler. :)

      Uh...what?

    7. Re:Another Language by sardaukar_siet · · Score: 1

      You're right, it's not the language. But it's also a matter of comfort. Coding in Ruby or Python allows for more goodies out of the box. Your assembly macros are a tack-on - some languages have powerful mechanisms built right in. I'm not saying the goodies come without a price, but they're there.

    8. Re:Another Language by SharpFang · · Score: 2, Insightful

      ORG 0000h
          LCALL MACROLIB #initialize the macro library
                            #from now on, let's write some macros we have just defined.
          class HelloWorld {
              public static void main(String[] args)
              {
                  System.out.println("Hello World!");
              }
          }
          LCALL EXECUTE
          JMP $

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    9. Re:Another Language by phantomfive · · Score: 2, Insightful

      Indeed, those do matter.

      My point is, if you give me sufficient encapsulation tools, I can write code that is concise, readable and manipulable. And it is something anyone can do.

      --
      Qxe4
    10. Re:Another Language by VortexCortex · · Score: 1

      mov ax, 4c01
      int 21h

    11. Re:Another Language by Anonymous Coward · · Score: 1, Insightful

      Hint: look up "assembler"

    12. Re:Another Language by Chrisq · · Score: 1

      it isn't the language, you can write good or bad code in any language But, VB makes writing bad code trivial, and writing good code challenging.

      COBOL even more so

    13. Re:Another Language by kaffiene · · Score: 4, Insightful

      Exactly. Which is why this "all languages are equivalent" mantra is just so much bullshit. All languages have domains for which they are more or less suited.

      I don't do script-like tasks in assembler, I don't do device drivers in Java, I don't write enterprise apps in Javascript or VB. Neither do most sane software engineers. This isn't a coincidence, it's because certain tools are better at certain jobs. People who argue that it doesn't matter what language you use cannot explain why good software engineers know why some languages are inappropriate for some jobs.

    14. Re:Another Language by Anonymous Coward · · Score: 0

      I disagree respectfully.

      The language shapes the way you think and for example there's no way any normal person can write easily in C what is possible in Haskell.
      If the abstractions aren't there, you'd have to write a whole new language interpreter/etc in your old language in order to get them, which is reimplementing Haskell anyway.

      Now if you are talking about differences in languages of the same class of languages (i.e. Java and C#, Perl and Python, ...), there and only there the differences are negilible (like here, seems to be very similar to Java - so I agree, here there is no point).

    15. Re:Another Language by Anonymous Coward · · Score: 0

      Design errors, framework limitations and learning to use shiny new toys effectively, have consumed much more time on any given project I've seen, than the savings that an incremental "improvement" of Gosu over Java (or similar) can ever bring.

      If Ford had to change all the Torx screws to Polydrive screws (assuming that Polydrive is somehow better), would that make a better car? Would decrease the cost of producing the first prototype?

    16. Re:Another Language by randomsearch · · Score: 1

      > In fact, with a good macro library, I can write code just as fast and well in assembly as in any other language.

      I really don't agree. We use high-level languages because they are easier to understand, they are more scalable and they generally enable code to be written quickly compared to low-level languages. Language choices do matter.

      If it were true that language doesn't matter, wouldn't we all still be using assembly language?

      RS.

    17. Re:Another Language by obarthelemy · · Score: 2, Insightful

      Hey, I'm gonna try for an analogy that is neither cars nor pizzas. Let the mod points roll !

      Languages are like MP3 players: some have strong points, extra features, nice ergonomics better price.. but in the end, what counts is the Apple-like ecosystems: users, developpers, tools, PR, content...

      Judging a language on its own merits is nice and all, but in the end, wuality of the tool sets, docs, hype... are probably a bigger contributing factor.

      --
      The Cloud - because you don't care if your apps and data are up in the air.
    18. Re:Another Language by icebraining · · Score: 3, Insightful

      How many lines do you need to emulate a Python's list comprehension statement in assembly? Even if you encapsulate, assembly simply doesn't let you express everything in the statement without a massive number of LOCs.

      Higher level languages are more readable for higher level concepts. It's not the same.

    19. Re:Another Language by Anonymous Coward · · Score: 0

      It's assembly, you don't need a compiler. :)

      Yes, yes you do.

      comments and well-named labels and macros

      ... are your first clues you're using a compiler. The fact that you're not writing your code purely as a series of binary values is the other clue.
      The job of the compiler is to take all those strings of English characters, labels, comments, macros, and so on, and convert them into the raw binary values which are usually referred to as machine code. It's true that assembler is closer to machine code than any other interpreted language, but it's still interpreted.

    20. Re:Another Language by Anonymous Coward · · Score: 0

      I find coding in ruby to be an extremely painful experience personally compared to python, java, c, c++, php, etc.

    21. Re:Another Language by Viol8 · · Score: 1

      "there's no way any normal person can write easily in C what is possible in Haskell."

      Oh rubbish. Do you think haskell is magic or perhaps it uses special CPU opcodes no other language knows about? Languages like Haskell just make certain concepts and constructs quicker to write, not possible to write. And since a lot of haskell interpreters are written in C ergo whatever you can do in Haskell you can do in C.

    22. Re:Another Language by listen · · Score: 1

      http://en.wikipedia.org/wiki/Turing_tarpit

      Don't be ridiculous. "All Turing complete languages are Turing complete" is not an argument, its a tautology.
      The question is how easily a concept can be expressed and reasoned about. By your logic, because diophantine equations can encode a lisp interpreter, they are a reasonable way to implement ... anything. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.6.7628&rep=rep1&type=pdf

    23. Re:Another Language by Anonymous Coward · · Score: 0

      And I suppose you really do not know how to write code in VB.

    24. Re:Another Language by danieltdp · · Score: 1

      VB is not a language! ;-)

      --
      -- dnl
    25. Re:Another Language by khakipuce · · Score: 1

      But then again I think of it as a bit like wine-tasting. Tasting as many langauges as possible gives me the ability to identify what goes best with what, how do I know if a task is more suited to Perl than assembler - only because I have used both. That said there has to be limits, if I have been using Java exclusively for a few months, it may be a lot quicker for me do some data mangling in Java even though it may require 10x as many lines of code the equivalent Perl (simply because I'll have to switch my brain into Perl mode, which at my great age is a sloooowwww process).

      So I still like to use as many languages as I can and I regularly use (i.e. write production apps/utilities in) about 3 or 4. Sometimes taking the time to look at the little langauges gives me a head start on what will come out in the more mainstream langauges in a year or two.

      --
      Art is the mathematics of emotion
    26. Re:Another Language by Greyfox · · Score: 1
      I was at that point about 10 years ago, then I woke up one day and realized that although you can say "Syntax is Syntax," every language has its little quirks that can take years to discover. Nine companies out of ten never need the kind of programmer who can use those quirks to his advantage, but when you find that tenth company, you can stop worrying about having your position outsourced to Brazil so much.

      Same thing goes for UNIX. UNIX is UNIX, except where it's not. Occasionally it's useful to know about HP/UX's screwed up socket interfaces or AIX's system administration tools. Or how tcsh sucks and you should never use it, even though many companies say "We use TCSH" because none of their people actually know how to change their shell.

      Certainly you can get by without knowing the little things, but where's the fun in that? And yeah, I've seen FORTRAN written in Java.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    27. Re:Another Language by chudnall · · Score: 2, Interesting

      there's no way any normal person can write easily in C what is possible in Haskell.

      I used to think that too, up until about a week ago when someone on reddit was challenged to write a C++ equivalent to Haskell's zippers. What he came up with was pretty impressive.

      Possibly that guy is not a normal person though. :)

      --
      Disclaimer: Evolution comes with NO WARRANTY, except for the IMPLIED WARRANTY of FITNESS FOR A PARTICULAR PURPOSE.
    28. Re:Another Language by Rockoon · · Score: 1

      The fundamental maintainability problem with assembly is that there is no type safety. You have pointers (everything can be a pointer!), but there is no type information along with them (everything can be anything!)

      This cannot be solved while still being called an 'assembler' ... it is certainly possible to use (for instance) MASM in such a way that you have some degree of type safety (or rather, SIZE safety) at load and store points, but once in registers you just dont have that safety, in fact the types are obscured at the structure definitions/etc which are just not going to be anywhere near the code that accesses them.

      This is why assembly language is now mainly used for libraries... encryption libraries, compression libraries, bitmap manipulation libraries, FFT's, and so forth.

      I am a highly experience assembly language programmer going all the way back to the 8086, but these days I just will not write anything substantial entirely in assembler. Inner loops for sure, but no way will (win)main be in assembler. No chance.

      --
      "His name was James Damore."
    29. Re:Another Language by Viol8 · · Score: 1

      Actually it simply a case of C (and C++) being a very powerful language. For people who know how to use them properly its not often you need to use anything else to do complex data processing.

    30. Re:Another Language by Raenex · · Score: 1

      And since a lot of haskell interpreters are written in C ergo whatever you can do in Haskell you can do in C.

      Try reading what you are replying to:

      "If the abstractions aren't there, you'd have to write a whole new language interpreter/etc in your old language in order to get them, which is reimplementing Haskell anyway."

    31. Re:Another Language by hesiod · · Score: 2, Insightful

      A compiler translates code INTO assembly (or machine code). An assembler translates assembly code into machine code.

      Geez, the kids these days are spoiled with their fancy IDEs, and don't even know what assemblers and linkers are. So sad.

    32. Re:Another Language by jasenj1 · · Score: 1

      I've decided, it's not the language, it's the libraries. I write very little code that does the "real" work any more. Need to process XML? Find a library. Need web services? Find a library. Need to process Excel documents? Write a GUI? Talk to a database? etc., etc. My coding is far more about wiring up libraries of functionality than it is about taking advantage of whatever cool feature the language I'm using may have.

      - Jasen.

    33. Re:Another Language by Anonymous Coward · · Score: 1, Interesting

      I generally agree with your point: certain tools are better for certain jobs. I will, however, point out that more and more people do seem to be writing enterprise apps (at least partly) in Javascript. It's not what it used to be.

      Which I guess is just my way of saying, if a tool becomes complex enough, and malleable enough, it can change to fit a greater/different variety of jobs.

      (I was going to use a screwdriver as an example of a tool that doesn't do this, but I've seen some pretty sophisticated screwdrivers lately: extending magnets, built-in flashlights, ratcheting, multiple bits, etc.)

      Besides - some of my assembly scripts are kick-ass!

    34. Re:Another Language by abigor · · Score: 1

      You failed to address his point. It is about ease and elegance of expression, not to mention maintainability. C is really only appropriate for a smallish subset of problems, which is why it's mostly confined to systems-level stuff (which is perfectly fine; that was C's original mandate).

    35. Re:Another Language by phantomfive · · Score: 1

      When you get a chance, go research the difference between an interpreted language, a compiled language, and an assembled language. You will open a whole new world to yourself.

      --
      Qxe4
    36. Re:Another Language by Anonymous Coward · · Score: 0

      I see your little ploy and raise you a

      jmp ffff:0

    37. Re:Another Language by professorguy · · Score: 1

      APL? You really programmed in APL? I thought I was the only one. Oh man, did I love my Linear Algebra II class, and writing a matrix manipulation program which would be several pages in C is a single line in APL! Too cool.

    38. Re:Another Language by Moochman · · Score: 1

      You *can* write such code, but how long will it take you to build up equivalent APIs in a low-level language that these higher-level languages give you out of the box, taking into account the time needed to eliminate bugs? Here's a hint: it took those multiple companies' worth of advanced programmers over a decade to get to that level.

      It's almost as if you exhibit a polar extreme case of Not Invented Here syndrome. Just because you *can* do something does not make it a good or practical solution to real-world problems.

    39. Re:Another Language by phantomfive · · Score: 1

      Nah, you misunderstood. I don't hate (almost) any language, and will use any of them. But I don't think there is some 'god' language that is better than them all, and arguing that one language is better than another generally is rather silly.

      --
      Qxe4
    40. Re:Another Language by phantomfive · · Score: 1

      My grandpa wrote in it a lot as a chemist, probably back in the 80s. I never really got good at it though, just played with it a bit.

      --
      Qxe4
    41. Re:Another Language by Anonymous Coward · · Score: 0

      One of the first languages in which I used OO was assembly... And yes, I did a lot of coding of basic stuff like lists and streams, but they were completely reusable, just like the core library of any modern language. In fact, the assembler even came with a small library with examples and some basic classes, covering most of the usual classes found in OO implementations.

    42. Re:Another Language by Viol8 · · Score: 1

      I didn't reply to it because its nonsense. You would not need to reimplement a haskell interpreter to process haskell style expression any more than you need to implement an SQL interpreter in C if you wanted to write a C program to manage a bespoke database system.

    43. Re:Another Language by Raenex · · Score: 1

      You're full of shit. You made a Turing completeness argument when the poster you replied to already acknowledged it. This post is getting even dumber, because now you claim that a C program that can interpret Haskell expressions is not a Haskell interpreter.

    44. Re:Another Language by Viol8 · · Score: 1

      Oh for gods sake - you don't need to to interpret SQL expressions to query a database you fucking moron - you can do it direct.

      Got it yet??

    45. Re:Another Language by Raenex · · Score: 1

      Yet if you were processing SQL expressions you'd have written a SQL interpreter, and we were talking about writing Haskell expressions. Got it yet, fucking moron?

      You're going a long way just because you latched on to one sentence and failed to read the rest of the post.

    46. Re:Another Language by Viol8 · · Score: 1

      We're not talking about writing Haskell expressions FFS. We're talking about implementing the same functionality in C with not much extra work for someone who's proficient in the language. eg list processing, pattern matching etc etc.

      Now go away , you're quite obviously too stupid to argue with.

    47. Re:Another Language by Raenex · · Score: 1

      You're the one who came out with the Turing completeness argument. This is what you responded to:

      "there's no way any normal person can write easily in C what is possible in Haskell."

      You completely missed the bolded part and attacked a straw man:

      "Languages like Haskell just make certain concepts and constructs quicker to write, not possible to write. And since a lot of haskell interpreters are written in C ergo whatever you can do in Haskell you can do in C."

      You even say yourself that it's easier, but then go on to the Turing completeness argument. Complete straw man, and another poster dinged you on it too. You just can't admit you fucked up.

    48. Re:Another Language by carlosqt · · Score: 1

      "it isn't the language, you can write good or bad code in any language" That is totally true, however: "But, VB makes writing bad code trivial, and writing good code challenging." I guess you are talking about old VB. Right? VB1-6 or vbscript? because VB.NET is exactly the same than... let's say C#. The differences is only the much more verbose syntax.

    49. Re:Another Language by carlosqt · · Score: 1

      If you are building Enterprise or Desktop applications using managed code for the .NET or JVM runtimes, then yes, all languages are the same. You can build any .net application in any .net language and I guess the same applies to java and java languages because at the end you use the same Framework/libraries. Of course if you compare low level programming with high level programming it is true that you need to chose a native language which is "logic".

    50. Re:Another Language by Kensai7 · · Score: 1

      Amen to that!

      That's why I use C++ even if half the world of developers whine about its complexity. It's true, but the libraries and toolkits (like Qt) are there!

      --
      "Sum Ergo Cogito"
    51. Re:Another Language by phantomfive · · Score: 1

      That type safety issue is a good point. Of course you could write macros to access the various parts of a struct, but then you're essentially re-implementing C the hard way.

      My point though, is that the vast majority of time taken programming is for debugging, testing, and refactoring. Someone who knows how to minimize these things will write better code in assembly than someone else who is using any language. The language is the secondary consideration: if the libraries are there, and you have the skill, you can do anything fairly easily.

      And there is no language where MFC is anything but torture, in my opinion. Winmain = lose.

      --
      Qxe4
  8. Correction by Anonymous Coward · · Score: 0

    Another programming dialect (Anonymous Coward yourself, it is too much complicated to used this weird comment system once logged in).

  9. Are programs written in Gosu called Gosum? by Anonymous Coward · · Score: 0

    n/t

  10. Sounds like BS to me... by BudAaron · · Score: 0, Troll

    Seems to this old dude like we have too many languages already. Why another language? I understand the reason for multiple languages like English, French and Spanish for example but why in the hell do we need to keep inventing new programming languages? Just looks to me like one more severe case of rectal caranial inversion.

    1. Re:Sounds like BS to me... by phantomfive · · Score: 1

      lol you are not the first person to complain about that. Check out this picture from the 60s. There were so many programming languages in days past that the DoD decided to standardize on one language, and not surprisingly did it by creating another language (ADA), to surpass them all. TCL was created with a similar motivation.

      But look at the picture, if you recognize half those languages, you are pretty good. The languages most of use daily weren't even dreamed of when that picture was made. And so it goes, new languages come along, with new features, and most are forgotten, but occasionally someone comes up with a good idea that sticks around.

      --
      Qxe4
    2. Re:Sounds like BS to me... by Anonymous Coward · · Score: 0

      It is about competition of ideas. (For the same reason you should start political party if you think and want to do things different.) It could become the next best thing since sliced bread. It could also be interesting from to point of programming languages research; it might not survive as whole but some of its ideas might inspire others. Its implementation could also show others how to implement JVM based language/compiler/interpreter. Etc. Whether it succeeds or fails or just becomes a niche language, its existence contributes to the wealth of knowledge.

    3. Re:Sounds like BS to me... by shutdown+-p+now · · Score: 1

      why in the hell do we need to keep inventing new programming languages?

      On one hand, the ones we have are not perfect. On the other hand, there is as yet no agreement as to what a perfect one would look like. Hence many people take many different ways towards what they see as perfection.

      On the other hand, there are still quite a lot unresolved language design problems - mainly to do with type systems. Until those are dealt with, it's not clear if perfection is even attainable.

    4. Re:Sounds like BS to me... by Anonymous Coward · · Score: 1, Insightful

      I'm all in favour of new programming languages but it's true that there are a lot around at the moment. That's why it's really important to provide a concise explanation of why you created a language when you release it to the world. What were the aesthetics informing your design decisions. What key features do you think are really important that sets it apart from its peers (ideally a short explanation of the benefit of those features too).

      Gosu didn't seem to have such a clear mission statement, which makes it very difficult to know if I'm interested or not.

      From what I can glean from the website a lot of Gosu seems to be about adding obvious and much needed improvements to Java, which is fine as far as it goes, but there needs to be a bit more to be truly interesting. Along those lines, I think Scala goes further and is so far more interesting to me.

    5. Re:Sounds like BS to me... by mihalis · · Score: 1

      Ada is named after a real person, Ada Byron, Countess of Lovelace, therefore should not be typed in all caps. thx

  11. Not Lisp? by robi5 · · Score: 1

    Gosu, your new name is GOSUB but please never come back.

    1. Re:Not Lisp? by scdeimos · · Score: 1

      I wish I had points...

    2. Re:Not Lisp? by MemoryDragon · · Score: 1

      Jepp the dreadful lisp syntax drove me away from clojure, how can anyone write a big system with such a mess of a syntax. There are functional languages which are actually readable, lispish languages are definitely not one of those.

    3. Re:Not Lisp? by nigelo · · Score: 1

      ... There are functional languages which are actually readable, lispish languages are definitely not one of those.

      There are functional posts which are actually readable, but yours is definitely not one of those ;-)

      --
      *Still* negative function...
    4. Re:Not Lisp? by azgard · · Score: 1

      The syntax is there for a reason. The reason is macros. And macros are the main reason why Lisp is great.

    5. Re:Not Lisp? by DocHoncho · · Score: 1

      I've been playing around with elisp and noticed that after a while you don't really notice all the parens any more. Plus editing lisp with an editor (os?) like emacs which "enforces" indentation makes it even easier to tell at a glance what is going on in a given function.

      As an aside, lisp really doesn't have all that much "syntax" in the traditional sense, just parens and the rest is functions.

      I'm no lisp maestro by any means but I finally get what other lispers mean when they say the parens just disappear

      --
      Celebrity worship is a poor substitute for Deity worship and costs more to boot.
  12. Still missing by a_claudiu · · Score: 1

    Still missing const

    1. Re:Still missing by shutdown+-p+now · · Score: 1

      Why do you need it in a Java-like?

    2. Re:Still missing by a_claudiu · · Score: 1

      The const is a nice addition to the language, Java like or not.

      When you are declaring a function checkList(const List aaa) you are saying that the function will not change the content of that List. Something you can not do in Java unless you are using Unmodifiable from Collections but then will be a runtime check and will be the responsibility of the caller.

      The same const applied to a function will tell you that running that function will not change the state of the object.

      You can even do something more than C++, apling const to a class is telling you that you have a Immutable class (like String) and you are forced to write all the not private functions as const.

      Const looks like an elegant solution for common problems and can be implemented quickly as an extra check for the compiler (run time support nice to have). Ideally I would like to have const implicit and write noconst explicit for the parameters that I want to modify but that's too much of a change.

    3. Re:Still missing by Anrego · · Score: 1

      I'm no "languages" man, but I've never seen how one would implement the kind of const you describe without some massive pain.

      Everything in Java is a reference. You can dictate that the reference does not change (i.e. using the final modifier) but somehow locking the state of the object you are referencing sounds like it would be very tricky[tm]. Especially when a lot of complex classes use internal temporary buffers created at construction to generate results (this is also really good for thread safety. You'd end up with weird situations like calling someObject.getBlehCalculations() and end up with a "CanNotModifyConstObject" exception.

      I guess you could have some kind of annotation system to dictate which members of a class dictate state.. but that sounds very messy. Or you could just take the "live with it approach".

      I do agree, being able to specify "this isn't modified" would be an awesome feature for readability though!

    4. Re:Still missing by a_claudiu · · Score: 1

      As I said the runtime checks are nice to have, but compile time checks are trivial:

      - when you have a const object parameter you can not call any method of that object that is not const or change any field of that object
      - a const parameter can not be assigned to a not const variable
      - when you are a in const method you can not modify any field (or call a function of that field that is not const) or call an internal method that is not const
      - when you are in a const class you can not call any not const function or modify a field unless you are in the constructor
      - only one exception for the fields that are marked as mutable (for example the hashcode for String that is calculated the first time you call hascode function and is considered as not really changing the state of the Object). Or your own example of buffers.

      Any violation of the above rules gives a compilation error and not a runtime exception. The ideea is to catch the errors at compile time not runtime.

    5. Re:Still missing by Surt · · Score: 1

      Unfortunately, none of the huge library of java methods is marked const. You'd have to reimplement, for example, all of collections to make this useful.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    6. Re:Still missing by shutdown+-p+now · · Score: 1

      My apologies, I did miss the obvious meaning of your post.

      Yes, const-correctness is something very nice to have, especially once you get to parallelization and other situations where immutability is important.

      Unfortunately, it's also something that's hard to do right - e.g. even in C++, quite often there's code duplication between const and non-const versions of the same method, because it literally is the same code - except for difference in const modifiers in some places which cannot be easily generalized. That is annoying.

    7. Re:Still missing by a_claudiu · · Score: 1

      Besides the fact that you can make an automate tool to mark const/not const of a full library, you can just simple exclude java. libraries from your check for const.

    8. Re:Still missing by a_claudiu · · Score: 1

      You don't need to do it the c++ way, just avoid the duplicates of const/noconst of c++ methods, a method is either const or not const.

    9. Re:Still missing by Surt · · Score: 1

      My point being that if you do that, you're sort of doomed, because now you've lost track of (or lost the ability to mark) const-ness in any location that calls TO a non-const-safe library.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    10. Re:Still missing by shutdown+-p+now · · Score: 1

      The reason why methods are duplicated is because const methods usually also have const returns, while non-const ones have non-const returns. I don't see how you could merge those in a general case, since a const method only indicates that it won't mutate the receiver (i.e. "this"), and doesn't say anything about the object which it returns. There are valid cases where the return of a const method is itself non-const (generally speaking, every time when the object returned is not owned by the receiver), so you'll have some need to distinguish those.

    11. Re:Still missing by a_claudiu · · Score: 1

      The most of the time you want to overload const and not const returns are the operator overriding. With the rest of the cases you can simply make two different methods if you really want.

  13. Run for the hills! by MichaelSmith · · Score: 1

    Its new age cobol. I can hear the PHB now. If we use and instead of && our secretary will understand how to code and we'll save milions!

    1. Re:Run for the hills! by francium+de+neobie · · Score: 1

      If we use and instead of && our secretary will understand how to code and we'll save milions!

      Watch out for when your secretary learns to fly, then - for she's coding in Python and she's gonna import antigravity!

    2. Re:Run for the hills! by MichaelSmith · · Score: 1

      If we use and instead of && our secretary will understand how to code and we'll save milions!

      Watch out for when your secretary learns to fly, then - for she's coding in Python and she's gonna import antigravity!

      Well I hope she remembers to indent correctly.

    3. Re:Run for the hills! by shutdown+-p+now · · Score: 3, Funny

      As a geek, you should actually prefer "and", because it is quicker to type than "&&" - it does not engage Shift, and it does not require pressing the same key twice (which requires waiting for release after the first press). Same for "or" vs "||".

    4. Re:Run for the hills! by MichaelSmith · · Score: 2, Funny

      var1&&var2 works but var1andvar2 doesn't

    5. Re:Run for the hills! by shutdown+-p+now · · Score: 1

      var1&&var2 works but var1andvar2 doesn't

      Well yes, you can write it all on one line as well. But if you really want to go that way, nothing beats APL.

    6. Re:Run for the hills! by Ragzouken · · Score: 1

      Try using spaces

    7. Re:Run for the hills! by icebraining · · Score: 2, Interesting

      No, as I geek I prefer because "readability counts". Gains in productivity from key presses are irrelevant compared to the gains in productivity from understanding code as you skim it.

    8. Re:Run for the hills! by danieltdp · · Score: 1

      and is not on the top part of the keyboard, which are harder to reach

      --
      -- dnl
    9. Re:Run for the hills! by danieltdp · · Score: 3, Insightful

      Which is good, because it teaches programmers the positive impact white space has on readability

      --
      -- dnl
    10. Re:Run for the hills! by AltairDusk · · Score: 1

      What did the space bar do to make you hate it so?

    11. Re:Run for the hills! by Anonymous Coward · · Score: 0

      and is less readable. && wins. qed.

    12. Re:Run for the hills! by nigelo · · Score: 1

      It was hard to write, so it should be hard to read.

      --
      *Still* negative function...
    13. Re:Run for the hills! by Nerdfest · · Score: 1

      There is a sweet spot for white space. I find too much detracts (too many blank lines, etc). Most of this can now be controlled at view time through and IDE and isn't even worth arguing about any more.

    14. Re:Run for the hills! by Moochman · · Score: 1

      whoosh

    15. Re:Run for the hills! by Moochman · · Score: 1

      except for the fact that writing "(num1==5 && num2==6)" is arguably easier to read than "(num1 == 5 && num2 == 6)", because white space is only used between expressions and not within them.

    16. Re:Run for the hills! by Anonymous Coward · · Score: 0

      Unless it's VB where to get the same logic as && you have to type AndAlso

    17. Re:Run for the hills! by shutdown+-p+now · · Score: 1

      As a geek ...

      Unless it's VB ...

      We'd take away your geek card, but it self-immolated in shame already. ~

    18. Re:Run for the hills! by Anonymous Coward · · Score: 0

      Is "and" really more readable to you than "&&"? You haven't programmed that much (outside of the world of Python & co.), have you?

  14. Very neat by should_be_linear · · Score: 1

    it seems some very nice aspects of Java, Pascal, C# and Basic combined, with both compiler and runtime library problems elegantly solved.. This looks really good to me. And I am not big fan of new languages.

    --
    839*929
  15. More comparisons are wanted by Anonymous Coward · · Score: 0

    Comparing to other jvm languages is not so exciting any more. Why don't compare it to .net languages like Boo (http://boo.codehaus.org/) or Cobra (http://cobra-language.com/)?

  16. Re:PEOPLE OF EARTH: this is spam by MichaelKristopeit162 · · Score: 0

    And where's the editorial fucking control over this whirlwind of bullshit, anyway?

    you haven't heard?

    slashdot = stagnated

  17. Yuck!!! by gustgr · · Score: 2, Interesting

    Phonetically gosu sounds identical to the Portuguese word "gozo", which literally means cum (as in ejaculation).

    1. Re:Yuck!!! by mister_handy · · Score: 1

      Rock on. I just learned a new profanity in another language. I love Slashdot.

    2. Re:Yuck!!! by icebraining · · Score: 1

      Only in Brazil. It has no such connotation in Portugal.

    3. Re:Yuck!!! by gustgr · · Score: 2, Interesting

      Interesting to know. Originally it was used in the same way as it is used in Spanish, meaning joy or pleasure (when a noun). In Brazilian Portuguese it has acquired the sexual connotation besides the usual meanings. Funny thing is that I just discovered that gozo means sweet in Basque.

  18. Why bother? There are better alternatives by Anonymous Coward · · Score: 0

    Gosu isn't much of a contender, when compared to other up-and-coming languages. C# has had implicitly-typed static-typing since 3.5 (or was it 3.0? More than a year ago, anyway), closures, better delegates (which allow for multicasting), extension methods (Gosu calls them 'enhancements'), LINQ, continuations, collection initialization syntax, object initialization syntax, properties, and anonymous types. 4.0 kicked it up a few notches with dynamic and covariant/contravariant reified generics. Some things in Gosu are nice, like intervals, the expansion operator, and delegated interfaces, but I wonder whether I'd use them often enough to justify a switch ... ... and I'm not even much of a C# user right now. The only reason I'm making the comparison to C# is because it's the most easily-comparable language that I know of. F# is way ahead (union types, pattern matching, fast functions, much better type inference, immutability), and that's what I've been using. Gosu doesn't stand a chance against that.

  19. Epic type system fail - universal covariance by shutdown+-p+now · · Score: 5, Informative

    The introduction has this gem:

    Gosu supports a simplified version of generics. Generics are a way to abstract the behavior of a class to work with different types of objects, but to still retain type safety. There are no wildcards, and generic types are covariant, like Java arrays, which is usually what you want.

    And here's how to make the type system bite the dust with this flaw:

    uses java.util.*;
    var xs : List<Object> = null;
    var ys = new ArrayList<String>();
    xs = ys; // type system allows this blatant LSP violation
    xs.add(123); // we just added an integer to a list of strings - great
    print(xs.get(0)); // yeah, this prints 123 - just to be sure
    ys.get(0).length(); // finally, a ClassCastException which should've happened 3 lines earlier

    What's funny is that Eiffel has already fallen into the very same trap, and is still trying to dig itself out of it.

    1. Re:Epic type system fail - universal covariance by cryptoluddite · · Score: 1

      The really funny thing is that in practice all generics really need to do is prevent you from having to repeat casts everywhere, catch errors moderately soon, and aid in documentation. Which is what these do. The real 'trap' here is thinking that something has to be theoretically perfect to be useful or convenient.

    2. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 4, Insightful

      The really funny thing is that in practice all generics really need to do is prevent you from having to repeat casts everywhere, catch errors moderately soon, and aid in documentation. Which is what these do.

      They don't let you "catch errors moderately soon" in many real scenarios. It's the same problem as implicit null value for reference types everywhere - end result is you can have one part of code returning null where it shouldn't, that null get quietly propagated throughout your system from component to component because no-one needs to do anything to it, and then it all finally blows up when some other code elsewhere receives a value that should not be null but is - and you end up with a NullPointerException and, often, no clue as to what code originally produced the invalid value.

      Same thing here - someone, somewhere will create a collection of subtype, implicitly upcast it to supertype, and pass it over because they do not understand that List<Number> cannot always be substituted for any random List<Object> - because it's non-intuitive, despite being true (since add() is not covariant). All the evidence I need for this are all the questions asking about how to do just that in Java or C# on StackOverflow. When you ask people to post the code, it almost invariably turns out to be broken, and the type system did them a favor by rejecting it.

      The real 'trap' here is thinking that something has to be theoretically perfect to be useful or convenient.

      We're not talking about "theoretically perfect" here. We're talking about a language that's statically typed - the sole benefit of which is type safety unless explicitly overriden (by casts etc) - but which then forgoes this very benefit.

      Furthermore, the only other language I'm aware of which has the same flaw is Eiffel. Neither Java nor C# nor any other language with generics has this. They all either have no variance at all (which is inconvenient by safe), or declaration-site variance (C# 4.0 "in" and "out" on type parameters) which is easier on the API client but does not let you express all relationships, or usage-site variance (Java generic wildcards) which requires API client to understand what it is all about.

    3. Re:Epic type system fail - universal covariance by rsmckinney · · Score: 1

      Static typing is only useful when it *helps* us. In our view use-site variance via wildcards and the complexities that come with it confuse programmers -- no *help* from static typing there. Declaration site variance is less confusing to users, but has an impact on API design in terms of "in" / "out" data. In other words the degree to which one has to change and understand code is typically not worth the trouble, hence array-style variance. It tends to *help* users of libraries, not hinder, which is what static typing is all about. It's definitely a trade-off, but one we think is worth it.

    4. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 2, Interesting

      Fair enough. I still hold by my earlier assertion that this is the mistake of the same proportion and impact as nullable-types-by-default (about which there have been repeated published regrets by the very language designers which introduced them), but I do understand the argument from pragmaticism. Time will tell if your trade-off was worth it or not.

      Then again, those who grok variance (and other advanced stuff) already have Scala, while Gosu could take the niche of a language that is not that far removed from Java (including the learning curve!), but still somewhat more convenient. On the other hand, you do introduce closures - which a lot of the very same people having troubles with variance and wildcards have problem wrapping their heads around - so I'm not sure if the overall balance is good enough for this niche.

      Or whether the niche will even exist for much longer - after all, at some point OOP was that new-fangled academic concept, only present in exotic languages like Simula, and beyond the comprehension of mere mortals coding in FORTRAN or COBOL.

    5. Re:Epic type system fail - universal covariance by Anonymous Coward · · Score: 1, Interesting

      The introduction has this gem:

      Gosu supports a simplified version of generics. Generics are a way to abstract the behavior of a class to work with different types of objects, but to still retain type safety. There are no wildcards, and generic types are covariant, like Java arrays, which is usually what you want.

      And here's how to make the type system bite the dust with this flaw:

      uses java.util.*;
      var xs : List<Object> = null;
      var ys = new ArrayList<String>();
      xs = ys; // type system allows this blatant LSP violation
      xs.add(123); // we just added an integer to a list of strings - great
      print(xs.get(0)); // yeah, this prints 123 - just to be sure
      ys.get(0).length(); // finally, a ClassCastException which should've happened 3 lines earlier

      What's funny is that Eiffel has already fallen into the very same trap, and is still trying to dig itself out of it.

      Since when does the line xs=ys; not generate a warning?

    6. Re:Epic type system fail - universal covariance by renoX · · Score: 1

      Their main 'competitor' Scala (in my mind) has both covariant and contravariant type system.
      So in the language comparison, they left out covariant and contravariant..
      *Sigh*

    7. Re:Epic type system fail - universal covariance by aug24 · · Score: 1

      I concur exactly with your null/NPE observations. The next addition I want to the Java spec is the ability to mark a method as never returning null. (Also I want to be allowed to hunt with a shotgun anyone else who tells me that every calling routine should check for null return.)

      --
      You're only jealous cos the little penguins are talking to me.
    8. Re:Epic type system fail - universal covariance by amn108 · · Score: 1

      Talking about initial null references and all, I don't know about your Java compiler, but mine refuses to compile a program where an initially unassigned reference is attempted to be used. That's what it's all about isn't it - if the initial use of a unassigned (null) reference is prohibited at compile-time, then surely nothing will propagate anywhere and make a mess? Please advise ;-)

      Additionally, and regardless of how smart/strict a compiler is, are you saying that you would prefer another constant such as say 'unassigned' (which in fact cannot be assigned explicitly) as a value for unassigned references? Then, if an 'unassigned' value pops up from nowhere at runtime after your program has aborted with a thrown exception, you at least know that it was not a null pointer but that you're using a compiler that cannot tell where an unassigned reference is being used? Just thinking aloud...

    9. Re:Epic type system fail - universal covariance by Anonymous Coward · · Score: 0

      >The real 'trap' here is thinking that something has to be theoretically perfect to be useful or convenient.

      Well, having the choice between a language that stabs me in the back sometime in the future and one that's theoretically perfect, I know which I'd choose.

    10. Re:Epic type system fail - universal covariance by oever · · Score: 1

      The closure compiler for javascript checks for non-null passing by adding non-nullability to the type. E.g.
      /**
      * @param {?string} input string that may be null
      * @return {!string}
      **/
      function makeDefaultIfNull(input) {
      return (input) ? input : "Default";
      }

      --
      DNA is the ultimate spaghetti code.
    11. Re:Epic type system fail - universal covariance by Anonymous Coward · · Score: 0

      uses java.util.*;
      var xs : List<Object> = null;
      var ys = new ArrayList<String>();
      xs = ys; // type system allows this blatant LSP violation

      If xs would be defined as read only, it wouldn't be an LSP violation.

    12. Re:Epic type system fail - universal covariance by spiffmastercow · · Score: 1

      Ah, but now we get to have the classic discussion of whether the value of baby-proofing the language outweighs making the language easier to program in.. I'm a bit in favor ease of programming, type-safety be damned, because I don't make these kind of mistakes too often. But if I was a manager, it would depend on my level of confidence in my employees..

    13. Re:Epic type system fail - universal covariance by Anonymous Coward · · Score: 0

      Hmm. If it's trying to be covariant "Like Java Arrays," the assignment from ys to xs should be perfectly legal. It is xs.add(123) that should throw. 123 is autoboxed in this case, so the equivalent gosu code with arrays would be

      var xs : Object[] = null
      var ys : String[] = {"", "", ""}
      xs = ys
      xs[0] = new java.lang.Integer(123)

      and this does, in fact, thrown on the assignment to xs[0], not the assignment of xs to ys.

    14. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 2, Informative

      Talking about initial null references and all, I don't know about your Java compiler, but mine refuses to compile a program where an initially unassigned reference is attempted to be used. That's what it's all about isn't it - if the initial use of a unassigned (null) reference is prohibited at compile-time, then surely nothing will propagate anywhere and make a mess?

      No, that's not it. The initial value of an unassigned local variable is "unassigned", not null, which is why the compiler won't let you use it unless all code paths leading to the current point assign or initialize it. But you can still explicitly initialize with null, and then everything I said applies.

      Unassigned fields are initialized to null, and can be used as such with no explicit assignment/initialization.

      Additionally, and regardless of how smart/strict a compiler is, are you saying that you would prefer another constant such as say 'unassigned' (which in fact cannot be assigned explicitly) as a value for unassigned references? Then, if an 'unassigned' value pops up from nowhere at runtime after your program has aborted with a thrown exception, you at least know that it was not a null pointer but that you're using a compiler that cannot tell where an unassigned reference is being used? Just thinking aloud...

      No. The point is that the type system should ensure that a reference that is possibly null cannot be used without first explicitly checking for null. This generally means that references should be non-nullable by default, and if you want null as a valid value, you have to indicate it as part of the type.

      E.g. to borrow C# value type syntax for this - "Foo x" would be a non-nullable local variable, while "Foo? y" would be a nullable one. You shouldn't be able to write "x = null"; nor, for that matter, "x = y", without some check first that "y" is not null. Then, if your program compiles at all, you know that the code does perform all the explicit null checks that need to be done, and, therefore, a NullPointerException is impossible (there's no guarantee that it does what it should in the branches where the value is null, of course, but that's another matter).

    15. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 2, Insightful

      Since when does the line xs=ys; not generate a warning

      Are you, perhaps, confusing it with Java arrays? This is Gosu, not Java. It does not generate any warnings there, by design. In Java, the direct translation of the above would have not compiled. It would have compiled if those were arrays and not Lists, and would have not generated a warning in that case.

    16. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 1

      Hmm. If it's trying to be covariant "Like Java Arrays," the assignment from ys to xs should be perfectly legal.

      You're absolutely correct. My point was that covariance of Java arrays is itself an abomination, as it is not type safe. C# also has this - most likely because it was originally designed to look and feel familiar to Java developers, among other things - and there are regrets about this now.

    17. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 1

      "xs" is a reference to an object, not the object itself. Making it readonly doesn't change anything, you'd need to make the referenced object readonly.

      Yeah, if you'd have some way to ensure that the object itself is completely readonly, then it would also be covariant on its type parameters. Of course, this also needs the notion of const-correctness on type system level, something along the lines of C++ const modifier (including that on methods), but even more rigorous (C++ "mutable" would break things) - so that the compiler knows that add() is not okay to call there. But Gosu does not have it.

    18. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 1

      But now we get to have the classic discussion of whether the value of baby-proofing the language outweighs making the language easier to program in.. I'm a bit in favor ease of programming, type-safety be damned, because I don't make these kind of mistakes too often.

      It's a perfectly valid argument in favor of a fully dynamically typed language, such as Python. I just don't see the point in making a step in this direction - enough so to pull both advantages and disadvantages of that approach into play - but then not go the rest of the way.

    19. Re:Epic type system fail - universal covariance by Anonymous Coward · · Score: 0

      Which makes me wonder, what do all these language-design people have against contravariance? I thought Sather was a pretty good proof-of-concept there.

    20. Re:Epic type system fail - universal covariance by shutdown+-p+now · · Score: 2, Informative

      Which makes me wonder, what do all these language-design people have against contravariance?

      It depends on which of the two we're talking about: variance of method argument and return types, or variance of generics.

      For generics, the logic goes roughly like this:

      1. Generics are mostly used for collections.
      2. Intuitively, people expect a collection of objects of derived class to be substitutable for a collecton of objects of base class, even if it is not sound.
      3. In practice, most uses of collections per #2 are sound (i.e. only use the covariant methods, not contravariant ones).
      4. So, just default to covariant to make things mostly "just work", at the expense of late error reporting when the use is actually incorrect.

      For contravariance of method arguments, the only argument I've seen about the lack of it is that it is very rarely useful in practice (unlike contravariance for generics), so it's simply not worth implementing. I think that it should still be there as a matter of consistency, but it is a valid argument, especially when resources are always limited in practice. As Eric Lippert (of C# fame) once put it, "whenever someone asks me why C# doesn't have feature X, I ask him why C# should have feature X rather than Y, Z or any other that are on the ever-growing backlog".

      For Eiffel specifically, which uses covariance, it is because it lets you write stuff such as:

      class Foo
        feature equals(other: like Current)
      end

      which Meyer believes is more correct from OOD point of view than:

      class Foo
        feature equals(other: Foo)
      end

      Because you really want "equals" to be of the same type - it's part of the contract of the type. He goes into more detail on his reasoning here (search for "Unfortunately, the combination of static typing with other requirements of the object-oriented method makes the issues more difficult than they appear at first").

    21. Re:Epic type system fail - universal covariance by raboofje · · Score: 1

      I concur exactly with your null/NPE observations. The next addition I want to the Java spec is the ability to mark a method as never returning null.

      JSR 305 defines a set of annotations that allow you to do this (including '@NonNull' for method return values).

      The weakness of this is that you can formally specify a method should never return 'null' with this, but the compiler does not check whether you live up to this promise. There are tools that can do some basic checks against blatant mistakes (Eclipse does this nowadays), and tools that are a bit more advanced and find even more subtle mistakes (FindBugs comes to mind).

      Really proving correctness without a doubt is an unsolved problem - even when adding additional annotations it's a tough nut to crack - check out research projects like ESC/Java if you're interested in the gory details

      .

  20. Re:stop posting obvious untruths in stories. by Anonymous Coward · · Score: 1, Informative

    You missed out on the whole concept, and you're being aggressively dumb about it. Inferred types are derived from the code, which is, surprise, static. Type inference isn't heuristic at all, go and read about Hindley-Milner.

  21. Re:stop posting obvious untruths in stories. by shutdown+-p+now · · Score: 2, Informative

    if a type is EVER inferred, then the language is NOT statically typed. just because some preprocessor interpreter assigned a static type heuristically doesn't mean the language has anything to do with static typing... in fact, if the language ever infers type, that has EVERYTHING to do with DYNAMIC typing.

    You might want to go tell the authors and users of ML (incl. OCaml) and Haskell that they're using dynamically typed languages. Somehow I'm sure they will be very open to this idea.

  22. Re:PEOPLE OF EARTH: this is spam by pieterh · · Score: 1

    Apart from the way the names 'Gosu' and 'Go' overlap and are both derived from the board game, what similarities do you see between the gosu-lang.org and the golang.org websites?

  23. Re:PEOPLE OF EARTH: this is spam by shutdown+-p+now · · Score: 1

    After briefly glancing through the docs, this language has absolutely nothing to do with Go. I'm not even sure what you mean by "lift of the website" in this context. The design is completely different, and so is the contents.

  24. call be back.... by batistuta · · Score: 5, Insightful

    >> The language itself is not yet open source,

    ok, call me back once it is. I don't really need another programming language, let alone a closed-source once.

    1. Re:call be back.... by Anonymous Coward · · Score: 0

      Meanwhile the rest of us will wait for the open source release and get better at the language - without Freeppies in the way.

    2. Re:call be back.... by BrianPan · · Score: 1

      Ok, it shouldn't be too long. What number can we reach you at?

    3. Re:call be back.... by Lando · · Score: 1

      Heh, I agree. Hundreds of languages out there, what does it matter if there is a new language. Especially if it's proprietary.

      --
      /* TODO: Spawn child process, interest child in technology, have child write a new sig */
  25. Gosu is an unrefined mix by rdebath · · Score: 1

    Gosu is an unrefined mix of cobalt oxide, sodium and other minerals mined in China.

    Yup, so very right.

  26. YASBTJ by slasho81 · · Score: 1

    Gosu is Yet Another Slightly Better Than Java programming language.

    1. Re:YASBTJ by MemoryDragon · · Score: 1

      Unless Sun/Oracle finally gets its act together and implements some language improvements, we will see another bunch of those languages. Properties have been requested for ages, closures have been discussed for how long. Dynamic reloading of classes for real hotswapping still is a pain in the arse. Java has done so many things right, but like many other sun technologies it falls short by 5% and then it takes ages to get it in out of the fear of breaking compatibility. I personally wonder if it would not be the time to introduce a java2.0 which tries to get rid of most problems by still maintaining the binary code compatibility. And even that can be covered by cross compilation. To me the Dalvik VM from a modern standpoint makes more sense on bytecode level than the registere based JVM.

    2. Re:YASBTJ by shutdown+-p+now · · Score: 1

      Properties have been requested for ages, closures have been discussed for how long.

      AFAIK properties are not on the radar, but lambdas are coming in Java 8. You can track the work (both design and implementation - there's already code to try out) here.

      To me the Dalvik VM from a modern standpoint makes more sense on bytecode level than the registere based JVM.

      It's Dalvik which is register-based (which makes fast interpreters easier to implement). JVM is stack-based.

  27. Gosu! by kenbo11 · · Score: 1

    "But it IS a piece of Gosu!"

    1. Re:Gosu! by itsdapead · · Score: 1

      "But it IS a piece of Gosu!"

      Don't worry: the language will probably be cancelled before it has a chance to really get going.

      Anyway, that was my first thought too, then I wondered if it was an invitation to Oracle's lawyers...?

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    2. Re:Gosu! by llamafirst · · Score: 1

      "But it IS a piece of Gosu!"

      Don't worry: the language will probably be cancelled before it has a chance to really get going.

      Anyway, that was my first thought too, then I wondered if it was an invitation to Oracle's lawyers...?

      regarding the "chance to really get going", Gosu is already used by multi-billion dollar companies around the world already, for a bunch of years.

      See a list of companies here: http://www.guidewire.com/our_customers

      It's just that the language now available to a wider audience who want it, not just Guidewire Software customers.

    3. Re:Gosu! by itsdapead · · Score: 1

      regarding the "chance to really get going", Gosu is already used by multi-billion dollar companies around the world already, for a bunch of years.

      Sorry - you mistook a facetious joke for serious commentary. You should, however, hand in your geek card for failing to spot the Firefly reference.

      The whooshing noise you heard was a battered spaceship swooping over a group of galloping horses...

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
  28. Online help browser sucks. by acooks · · Score: 4, Insightful

    Gosu people, your help browser sucks caravans.

    If I middle-click on a link, I don't want the page I'm currently reading to jump away. I want to read whatever is linked to _later_. Redirecting me and then breaking my browser's "Back" button, without even providing an alternative js back button, is unforgivable.

    1. Re:Online help browser sucks. by noidentity · · Score: 1

      Nevermind that; the examples comes up blank if one doesn't have JavaScript enabled. HTML FAIL.

  29. It is case-insensitive... by art6217 · · Score: 1

    plEasE, pROgRAMmerS ArE jUst pEOpLe. One hopes for a language that clears the java crud like the half-fake generics, and gets a case-insensitive language instead...

    1. Re:It is case-insensitive... by VortexCortex · · Score: 1

      0RLY? N4h, wh47 w3 w4n7 15 N07 c453 1n53n5171v3, 8u7 4 1337 c4p4813 14n6u463...

      ...or neither since you can develop letter case semantics and follow them precisely (much like your native language and Java do). Third graders are just people too, and are expected to learn proper punctuation in the language they learn.

      Programmers are excused from learning proper English language capitalization, punctuation and spelling (and other written language semantics (like proper "quote usage", and avoiding nested parenthesis ) ) because they frequently deal with the many-varied semantics of programming languages, and many coders don't use editors with spell-check features.

      Perhaps you should just use a case insensitive language, like BASIC (who's name is ironically case sensitive -- must be capitalized since it's an acronym).

    2. Re:It is case-insensitive... by spitzak · · Score: 1

      Though I don't know Java, I would think case insensitivity in a static-typed language would be a really huge pain. It would prevent you from making an instance of class "Foo" called "foo", in particular.

      Perhaps the Java syntax is such that whether a symbol is a variable or a type can be determined at parse time. But C has this and it is a real problem for C++, leading to a lot of the strange syntax, including the double colons, and a lot of extra modifier keywords needed by templates.

      Another problem is that "case insensitive" is pretty nebulous and undefined in Unicode. Do they mean only the ASCII characters are "case insensitive"?

  30. Cool. Next, fix the VM by Alkonaut · · Score: 1

    New languages for the JVM are cool and all, but still no syntax fixes the problems inherent in the JVM. Mainly, the lack of generics.

    1. Re:Cool. Next, fix the VM by MemoryDragon · · Score: 1

      The problem with generics are not on vm level, it is more the problematic implementation on javas side. The JVM after all is just assembler with high level constructs for classes and data types to some degree, it can scale to any generic implementation you can think of.

    2. Re:Cool. Next, fix the VM by llamafirst · · Score: 1

      New languages for the JVM are cool and all, but still no syntax fixes the problems inherent in the JVM. Mainly, the lack of generics.

      Actually there are several improvements to the Gosu generics system that workaround JVM limitations.

      In Java, when you use generics, the true type like MyClass is erased and it just becomes MyClass at run time. This called type erasure.

      In Gosu, if you do the same thing, assuming MyClass is a Gosu type, the run time type is really MyClass. This is called reified generics.

      (Note however that if the type is a Java type to start out with, like java.util.ArrayList, then the generic version ArrayList in Gosu follows the type erasure route as you'd imagine.)

      But if you are playing in the Gosu world with Gosu types (for example, a Gosu class ), the language adds code that really does preserve generics even though the JVM doesn't natively think that way.

  31. Re:stop posting obvious untruths in stories. by kaffiene · · Score: 1

    Slashdot used to appeal to the technically literate. *sigh*

  32. Wow... by Vahokif · · Score: 1

    They invented C#!

    1. Re:Wow... by carsongross · · Score: 1

      Yup. Except it runs on the JVM. And delegates actually do what you want. And the open type system allows you to expose arbitrary resources in a typesafe manner. And it has typeis inference. And enhancements don't need to be imported in every file they are used. But, hey, C# is a pretty good language. We'd be stupid not to take the good stuff in it.

    2. Re:Wow... by Anonymous Coward · · Score: 0

      This was my reaction, too. Java is missing a lot of stuff that C# has (for backwards-compatibility reasons, or just slow?) and could really use an update.

      Fortunately, it looks like Java 7 and/or 8 will have implementations useful features already in C#:
      * IDisposable/using (through Disposable and try(...) )
      * strings in switch blocks
      * ?? operator (through ?: operator)
      * dynamic (through Dynamic - I think?)
      * delegates (through MethodHandle - I think?)
      * lambdas

      Assuming Oracle hasn't killed Java by the time these come out, of course.

    3. Re:Wow... by godefroi · · Score: 1

      Running on the JVM might (or might not) be an advantage, depending on your chosen platform and your position on Oracle, but I'm confused on some of your other points.

      Delegates in C# do exactly what I want, so maybe it's "what I want" that is the problem?

      I can't find a clear example of what "open type system" means, nor what it means to "expose arbitrary resources in a typesafe manner", so I don't know what advantage that brings.

      C# has type inference, and has for ages.

      Importing enhancements (what C# would call extension methods) in every file? Really? That's a big beef with C#? I've never heard anyone complain about it before. What if you had multiple enhancements from different packages that conflicted by signature? How do you resolve the ambiguous calls?

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    4. Re:Wow... by kbs · · Score: 1

      "Open type system" in this case means "the ability to make business logic and pieces of data model part of the type system."

      So if I'm writing, say, an XML parser, the pieces of it from a defined XSD can now be part of the type system. If you try to use a tag which is typed incorrectly (i.e. isn't part of the XSD) you'll get a compiler warning.

      This is, in its core, a language that's really meant to be used for scripting in a limited domain enterprise context. Sure, that means it's not as "pure" and "ideological" as some languages, but it's something that's useful in the business sense.

      --
      yours,
      kbs
    5. Re:Wow... by godefroi · · Score: 1

      That's definitely interesting. Does it do that by generating code from the .xsd at compile time?

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
  33. Learning languages and their philosophies... by boorack · · Score: 4, Insightful
    Granted that not only you learn a language but also grasp philosophies/patterns/paradigms/etc. behind it, it's a Good Thing (TM) to learn new languages on regular basis. You need, however, learn much more than mere language.

    It's good to learn some assembly languages to see how machines work.

    It's good to learn C to get accustomed with low level things, pointer arithmetic, in-memory layout of code & data, OS internals and tons of other things. It's good to tinker and experiment with high performance C code, see how functions look disassembled. Try adding two matrixes row by row and then column by column and see performance differences etc.

    It's good to learn C++ to get accustomed with it's metaprogramming facilities, learn how to implement semi-automatic memory management via smart pointers and how all these high level things interact with low level.

    It's good to learn Java to get accustomed with that whole big world of objects, OOP patterns, TDD, exception handling strategies and tons of other things.

    It's good to learn Scala to get smooth introduction into functional programming concepts (higher level functions, closures etc.) and see how it can be incorporated into traditional object oriented code and more interesting concurrency models (actor model for example).

    It's good to learn Erlang to grasp functional programming even more, learn how to effectively use pattern matching, see the THE actor model implementation and learn about it's interesting error handling philosophy.

    It's good to learn LISP to grasp it's macro system that still cannot be matched in any other language. See Common Lisp at work and Clojure for it's approach to parallelism, mutability and distinction between values and identities.

    It's good to learn Haskell to see how to program in purely functional way and see monads in action.

    Not that I'm in any way competent in all things above. Much of it (plus other things) is still on my TODO list. I'm still being surprised by new ideas showing blind spots of my ignorance on regular basis. I don't buy however that learning new languages doesn't matter anymore. It matters. It's important. Maybe we should choose new languages to learn more carefully, choose less but dig deeper.

    1. Re:Learning languages and their philosophies... by noidentity · · Score: 1

      It's good to learn C++ to get accustomed with it's metaprogramming facilities [...] It's good to learn Erlang [...] and learn about it's interesting error handling philosophy. It's good to learn LISP to grasp it's macro system [...] See Common Lisp at work and Clojure for it's approach to parallelism [...]

      It's also good to learn English and get accustomed its apostrophe and possession features.

  34. Not real by DoofusOfDeath · · Score: 1

    Not real until you post its operational semantics!

  35. Re:stop posting obvious untruths in stories. by Anonymous Coward · · Score: 0

    Nice to see it still appeals to condescending pricks who would rather waste their time denigrating someone instead of just as easily informing them though.

  36. Looks very interesting by CaptnMArk · · Score: 1

    But I really like my semicolons (as much as lispers like their parenthesis)

    1. Re:Looks very interesting by llamafirst · · Score: 1

      But I really like my semicolons (as much as lispers like their parenthesis)

      Good news then!!!

      Because you CAN use your semicolons in Gosu!

      They are optional, although not the standard Gosu coding style. http://gosu-lang.org/doc/wwhelp/wwhimpl/api.htm?&context=gosu&src=intro&topic=Gosu_Statement_Terminators

    2. Re:Looks very interesting by Surt · · Score: 1

      So use semi-colons. They are allowed, just not required.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  37. Re:Why bother? There are better alternatives by icebraining · · Score: 2, Informative

    The JVM runs in more systems than the CLR. Assuming it's not too big, you could possibly use it on Android in the near future.

  38. switch and break by Anonymous Coward · · Score: 0

    So they opted for a switch statement that requires 'break' not to fall through to the next case. A bad inheritage I think.

    How many times have you really used this fall through feature? Compare that to how many times you really want it to break. For me the outcome of that comparison is that break should be the default (i.e. should *not* need explicit 'break' marks) and fall through an option (explicit marks, 'continue' or something)...

    1. Re:switch and break by Viol8 · · Score: 1

      "How many times have you really used this fall through feature?"

      All the time actually. Almost every switch I write has multiple cases which all require the same code executed (or not). If you've never come across this scenario then all I can think is you must just do toy coding.

    2. Re:switch and break by Anonymous Coward · · Score: 0

      Interesting that your normal use of switch differs significantly from mine.

      Perhaps my normal use of switch (or case or whatever it is called in some languages) comes from the use of languages where break does not exist in this context, and there is no fall through at all.

    3. Re:switch and break by darkwing_bmf · · Score: 1

      A proper language would let you put more than one thing in the same logical group without needing to fall through.

      For example in Ada you could have (case is Ada's version of a switch, it doesn't fall through) :

      CASE letter IS
        WHEN 'a' | 'e' | 'i' | 'o' | 'u' =>
            vowel_processing;
        WHEN OTHERS =>
            consonant_processing;
      END CASE;

    4. Re:switch and break by godefroi · · Score: 1

      I use fall-through all the time. Just sayin'.

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    5. Re:switch and break by istartedi · · Score: 1

      I've used fall-through on occasion, but I leave a comment:

      /* fall-through on purpose */

      I consider an accidental fall-through to be far more likely than an intentional one.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  39. Re:stop posting obvious untruths in stories. by Anonymous Coward · · Score: 0

    i think you need to check out the definition of statically typed.

  40. Interesting by TheDarkMaster · · Score: 1

    To me it looks like or a combination of BASIC and Java, or Java in a much more readable form. I personally liked because I always had the opinion that Java works (if you ignore the fact that it uses RAM like water) but could have a more friendly syntax.

    After all, a programming language syntax does not need to be "encrypted" to be effective.

    --
    Religion: The greatest weapon of mass destruction of all time
  41. Re:If your shit is so fucking awesome by Stooshie · · Score: 1

    I dunno, maybe flash is better? Flex can certainly do everything Gosu appears to do!

    --
    America, Home of the Brave. ... .and the Squaw.
  42. Scalars weakly typed? by david.emery · · Score: 1

    A quick look at the documentation shows that objects/classes are strongly typed, but scalars (i.e. integers) apparently are not. In my experience, you're much less likely to add Apples to Oranges, than you are to add Count of Apples to Count of Oranges. And that also holds true for scalar values used for array indexing, etc.

    So it seems to me that no language should be called 'strongly typed' if it doesn't include a complete type system for scalar types.

    1. Re:Scalars weakly typed? by fljmayer · · Score: 1

      Look again. Everything is strongly typed, including primitives.

  43. 2 weakest points of Java by clenhart · · Score: 1

    Two weakest points of Java are:

    1) Date/Time objects
    2) Generics

    as compared to C#/.Net -- having worked professionally in both. No langauge is going to fix these two.

    (Though you can use Joda for date/time handling.)

    1. Re:2 weakest points of Java by rsmckinney · · Score: 1
      Well, perhaps not perfect we did address some of more painful aspects of both. For instance, via Gosu enhancements we've added methods and properties directly on Date that make it much more useful and via Gosu interval types and expressions e.g., (date1..date2), you can easily navigate between two dates in either direction using the time granularity of your choice.

      We've also spent quite a bit of time in an attempt to make generics worth while. First, unlike Java, Gosu generic types are fully reified at runtime. So the pitfalls of type erasure are non-existent in Gosu. This is especially helpful in combination with Gosu enhancements to Java collections. Next, and probably most important, there are no wildcards in Gosu. Wildcards, more specifically use-site variance, is the bane of Java generics, in our opinion. Basically, use-site variance puts the onus on the *user* of a library regarding variance wrt type parameters, which, even if applied correctly, spreads confusion throughout a codebase. I designed and implemented generics in Gosu and I still have a hard time reading and understanding Java code with wildcards.

      Essentially, wildcards are an attempt at making Java's static type system "sound", which is a noble goal. But soundness alone isn't useful to us programmers. After all static typing is there for *us*; it's supposed to help *us*. If it's not helping most of the time, what good is it? That is the rationale behind Gosu generics and why we chose to apply array-style variance, which everyone seems to understand. True, it's a trade-off; our type system is not completely sound, but it's a trade-off we've been happy with so far.

  44. Sorry, but completely uninteresting. by master_p · · Score: 1

    I am sorry for saying this, and I say it with all good intentions, but this language seems completely uninteresting to me. There is already Scala, Closure, JRuby, and a myriad of other JVM languages.

    1. Re:Sorry, but completely uninteresting. by Surt · · Score: 1

      It's certainly competing for attention with all of those. That said, it gets some things right (IMO) that none of those other languages do, and those things are important enough to make Gosu a more enjoyable language to work with.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  45. Yeah! by Anonymous Coward · · Score: 0

    People who argue that it doesn't matter what language you use cannot explain why good software engineers know why some languages are inappropriate for some jobs.

    Yeah! You sure did tell them why it does matter though!

  46. Using Gosu/gscript for 3 years by Anonymous Coward · · Score: 0

    I use gscript every day - that's what Gosu is based on from their proprietary products. It's generally a useful language, with some time savers, but the devil is in the details. It causes otherwise good programmers to be lazy and make poor decisions, trusting that the language was written with performance in mind. It's not. And I'm constantly running into issues with the generics, enums, reflection, and other Java features.

    I'm hoping they've fixed this stuff in Gosu, but until then, I'd stick with something a little more community supported like Groovy if you have the option.

  47. C#? by Anonymous Coward · · Score: 0

    Looks like C# for JVM. No?

  48. Re:stop posting obvious untruths in stories. by 19thNervousBreakdown · · Score: 1

    I'm not sure you know what type inference is. I'll give you a hint, it's evaluated at compile-time.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  49. NOT Lisp is a feature by sproketboy · · Score: 1

    ROFL

  50. What has Java given us in return, anyway? by Latent+Heat · · Score: 1
    Um, garbage collection . . .

    Ok, garbage collection.

    . . . and portable byte code . . .

    OK, OK, garbage collection and portable byte code.

    uh, the JIT, yes, the JIT

    Well alright, garbage collection, portable byte code, the JIT . . .

    . . . and libraries. Lots and lots of libraries. And exception handling and stack traces tied to source-code line numbers. Used to be you had a runtime exception and you had to be up all night. We get to go home at night now.

    1. Re:What has Java given us in return, anyway? by Raenex · · Score: 1

      And exception handling and stack traces tied to source-code line numbers. Used to be you had a runtime exception and you had to be up all night.

      Stack traces are great, and they're usually enough to find the problem, but Java did lose out on core dumps. There are times when I really wish I had a core dump to load up in the debugger to see the contents of variables. Now that I think of it, core dumps also give you a stack trace.

  51. How precious by rubypossum · · Score: 1, Troll

    Here we observe the later stage of the life cycle of the ancient javan fanboicus extremis. Scientists believe that the first of the species was born in the Sun Microsystems booth at a Comdex convention in the mid 1990s (reportedly from a fling between Grace Murray Hopper and James Gosling.) From there the species propagated by its strange inter-species relationship with management. Similar to the tape worm reproductive cycle (Taenia solium), the javan first infects the management of the organization by later stage infected programmers (salesmen) who have been infected coming in contact with management of the organization. Usually promises are made and buzzwords (the mating call of management) are dropped. Similar once again to the tapeworm life cycle the infection of a new host is caused by cysts being eaten. However, in this case those in the management cycle force feed the cysts to the programmer cycle. At first the new programmer recoils in disgust at the Javan experience. This is followed by the first sign of infection; browsing infective books and as the disease progresses - buying them. As the infection commences the programmer is told to like the experience, overriding any natural senses and instinct. In the second stage the programmer still has a mild distaste and at some basic level realizes they shouldn't be having the feelings they're feeling. In final stage infection the programmer can be seen tossing and turning in bed saying "pure java..... it .... must... be in .... pure java..." and things like that. During this stage it is common for programmers to begin writing everything in Java. Shortly afterward they begin reproducing by attempting to create other Java programmers. Although their chances of actual sexual reproduction go down significantly after infection.

    It's easy to be immunized against javan infection, but no instant cure is now known. And immunize those you know and love. It's important to remember that ultimately this is a parasitic infection. Java causes many reams of code to be written in Java that should never be. It adds a minimum of 30% to development time. And contrary to typical management mating calls, because of the thousands more lines of code Java takes to express ideas, it costs many times more for long term support. Like COBOL before it, it rarely dies until the host dies. So the infection can only be prevented, not cured. Keep safe, and always use a prophylaxis.

    --
    I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
    1. Re:How precious by meadowsp · · Score: 1

      TLDR

    2. Re:How precious by profundus · · Score: 2, Insightful

      I would love to see you develop modern enterprise apps in C++. Different languages often are suited to different tasks.

      And why exactly are you so anti Java, to the extent you are making a froth mouthed fool of yourself? It's alright if you don't know how to program in Java. There is plenty of respectable, often much more cerebral, glamorous work you can do, from writing device drivers to application prgramming. What is 'your' beef?

      and badly written code is not just a Java phenomenon. See http://thedailywtf.com/ for examples in most common languages.

      --
      A new revelation every day
  52. Stop It! by sycodon · · Score: 2, Insightful

    Just stop with the new (but just rearranged) same old languages:

    Basic,
    C,
    C#,
    C+,
    C++,
    COBOL,
    Dyalog APL,
    Eiffel,
    F#,
    Java,
    Javascript,
    Jscript,
    Mercury,
    Mondrian,
    Oberon,
    Pascal,
    Perl,
    Python,
    Salford,
    SmallTalk,
    Standard ML,
    VBscript,
    Visual Basic,
    VisualJ++,

    Really...isn't it time to rethink all of these different, but same (except for the whacko Python,PHP stuff) and come up with one standard language? Extend it with different libraries if you want, but this dreaming up a new language that is pretty much the same as all the others except the line ends with ";" or you declare the type first instead of last or assignment is "=" except when it's "==". Or iterative structures that all work the same but all have different syntax? WTF people?

    Think of all the talent locked up in someone who has done language A for 10 years but is totally useless to you because your project uses language B? The concepts are the same, yet people's knowledge is arbitrarily walled off in this development environment or that environment. How can this be considered good?

    Innovation doesn't mean re-inventing the wheel.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re:Stop It! by sycodon · · Score: 1

      Gawd, my grammar sucks.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    2. Re:Stop It! by Just+Some+Guy · · Score: 2, Interesting

      Really...isn't it time to rethink all of these different, but same (except for the whacko Python,PHP stuff) and come up with one standard language?

      Not just "no", but "hell no". While all of those are Turing complete, I guarantee that you would not want to use Visual Basic to solve the same kinds of problems you'd want to use ML or Prolog for. Very few of the languages you list ("C+"? Heh!) are just minor variations on the others. Their are real, substantial differences between the approaches they take, and things like type systems and garbage collection have implications a lot deeper than just picking which syntax to use for assignment (which I don't think ML even supports in the traditional sense).

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:Stop It! by sycodon · · Score: 2, Interesting

      Since I am not CS person (Business, rather), I won't attempt to to argue with you about that.

      However, I think that any reasonable person would recognize that this Tower of Babel approach is holding back software development as a whole, needlessly fragmenting knowledge and impacting the careers of excellent programmers simply because they didn't jump on the latest bandwagon X years ago.

      Do you realize that Donald Knuth probably would not be "qualified" for 80% of the job postings on Dice...the man that practically invented programming? How stupid is that?

      I would think it is entirely possible to bolt a syntax "UI" onto an underlying language implementation that would preserve the lower level advantages held by some languages while supporting a common syntax and enabling the vast knowledge and experience in the industry to be freely exchangeable. In fact, I know it is because that's essentially what Microsoft did with C#.net and Visual Basic.net

      And C+? Yeah, probably something Microsoft did internally I bet. Not sure because I just made it up.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    4. Re:Stop It! by sycodon · · Score: 1

      In fact, I know it is because that's essentially what Microsoft did with C#.net and Visual Basic.net

      Well, they did the reverse...one underlying implementation for multiple languages. But would not the principal be the same in the other direction?

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    5. Re:Stop It! by ciggieposeur · · Score: 2, Insightful

      However, I think that any reasonable person would recognize that this Tower of Babel approach is holding back software development as a whole, needlessly fragmenting knowledge and impacting the careers of excellent programmers simply because they didn't jump on the latest bandwagon X years ago.

      A little yes but mostly no. A programming language isn't just syntax, it's the entire ecosystem of libraries, tools, operating system support, university teaching, and available documentation. Just as business/finance/economics has multiple sub-disciplines and "schools" that are appropriate to different business situations, so does each major programming platform lend itself to creating certain kinds of applications. Saying "let's use programming language X to solve problem Y" is just as foolish as insisting that Six Sigma will always produce the same business outcome as LEAN.

      If you must pick one thing that's holding back software development as a whole, pick human nature within business organizations. The story of LISP shows what happens when one programming language is "too powerful": managers didn't want to replace ten conventional Fortran/C/Pascal/etc. programmers with one good LISP programmer because it would simultaneously lead to that one LISP person being irreplaceable and the manager himself/herself becoming redundant. Contrast with the story of Java, a language deliberately restricted in order to enable lower-skill developers to produce something of value: Java was incredibly successfully precisely because it did not create a business dependency on ultra-productive irreplaceable programmers.

      The "Tower of Babel" is only bad for the first few years of a general-purpose (not assembly language) programming language, when it needs to grow its compiler/interpreter and base libraries for common things like networking, threads, OS integration, GUI support, math, crypto, and basic algorithms. After that it becomes just another tool that may have good uses for certain situations. Every good programmer will have at least half a dozen such languages in their toolbox: mine includes C, C++, Perl, bash shell script, Java, Common Lisp, and Clojure, and I am adding to that D to eventually replace most of my use of C++ and Java.

    6. Re:Stop It! by poopdeville · · Score: 5, Insightful

      Since I am not CS person (Business, rather), I won't attempt to to argue with you about that.

      Here is a business-like analogy: How hard is it to divide roman numerals? It's not easy. There are dozens of rules to memorize in order to make it work. Compare this to using Arabic numerals, where you only have to memorize two rules.

      However, I think that any reasonable person would recognize that this Tower of Babel approach is holding back software development as a whole, needlessly fragmenting knowledge and impacting the careers of excellent programmers simply because they didn't jump on the latest bandwagon X years ago.

      Yes, this is a big problem. But the issue isn't the "Tower of Babel" so much as a misunderstanding of the domains in which a tool can work well, which ultimately leads to "churn". There is an old joke along the lines of "Any sufficiently complex software project implements a buggy version of half of Lisp". There is some truth to that. Lisp is a language that allows abstraction over basically any term. This is something that imperative/OO programmers want, but they don't know how to say (and they tend to cover their ears screaming "LA LA LA LA LA" when academics tell them the problem was solved in the 1960s). So they build up ad hoc solutions to quantify over specific terms. Each of these operations is potentially tricky and buggy. The "Tower of Babel" is a consequence of this. Some of it is legitimate -- new languages can provide better tools (that is, new ways to quantify) to increase productivity. But benefits only accrue if businesses switch to them, at a potentially high cost.

      --
      After all, I am strangely colored.
    7. Re:Stop It! by Anonymous Coward · · Score: 2, Funny

      Just stop with the new (but just rearranged) same old woodworking tools:

      Adze,
      Allen wrench,
      Belt sander,
      Buffer,
      Chainsaw,
      Chisel,
      Dremel,
      Engraver,
      Hammer,
      Lathe,
      Miter saw,
      Ratchet,
      Router,
      Sandpaper,
      Saw,
      Screwdriver,
      Table saw,
      Wrench,

      Really, blah blah blah...

    8. Re:Stop It! by SCHecklerX · · Score: 1

      This is why I never bothered learning anything new. I dabbled with c, c++, and java, but as a sysadmin, perl and shell do the job. And perl does an excellent job at web frameworks, so I never bothered learning PHP, ASP, etc. It's a shame. I remember when perl was used for everything. And now they've just created new languages to do the same thing, only without the power of cpan. Don't get me started on friggin' ruby.

    9. Re:Stop It! by sycodon · · Score: 1

      "Clojure" and "D"?

      Just shoot me now.

      One thing about the multiple sub-disciplines and "schools"...they all use English. I don't have to learn a new syntax of English or a new form of mathematical notation in order to learn/work within those different areas.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    10. Re:Stop It! by sycodon · · Score: 1

      I see your point, but the analogy is pretty weak.

      This would be better:

      Cut Off saw, Radial Arm Saw, Table Saw, Miter Saw.

      And to stay with the tenuous analogy, the guy with 20 years experience using the Table Saw is useless to you if you are using the Radial Arm Saw.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    11. Re:Stop It! by Just+Some+Guy · · Score: 1

      However, I think that any reasonable person would recognize that this Tower of Babel approach is holding back software development as a whole

      Nope. Again, there are different tools for different jobs. I don't want to query a database in APL, write a website backend in COBOL, or launch a rocket with Perl. In each of those cases, there are far more suited languages that more closely map to the problem domain.

      I would think it is entirely possible to bolt a syntax "UI" onto an underlying language implementation that would preserve the lower level advantages held by some languages while supporting a common syntax and enabling the vast knowledge and experience in the industry to be freely exchangeable.

      But you'd be wrong, at least at the levels where it matters most. Again, all of those languages are Turing complete. That means that if you can write a program in one of them, you can write the functional equivalent in any of the others. That said, you'd almost certainly not want to.

      For instance, you could write the equivalent of a variable assignment in SQL that updates a row in a table of variable names and their values. Once you have that, you could build a looping construct, and some form of branching. On top of that you could build a GUI by writing an XML description of a form to one table, then query the table again to read the results of a user's actions. Voila! Logic and a GUI in SQL! Of course, it would be painfully slow and fiendishly difficult to program in, but it would be hypothetically exactly as powerful as writing the same thing in a 20-line VB.net app.

      What it comes down to is that you're wrongfully assuming that language are fungible and basically the same except for a few syntax exceptions. That is absolutely not the case! Lisp, Prolog, and C++ aren't merely the same concepts expressed in different ways, but almost entirely different models of computation.

      But if you have to pick one, pick Lisp. It's a strict superset of every other language in the world and I'd be willing to bet that you can write any other language in it. Please let me know how your personal campaign to get every program to switch to Lisp goes. I'd even be willing to help out on that particular project.

      --
      Dewey, what part of this looks like authorities should be involved?
    12. Re:Stop It! by sycodon · · Score: 1

      I think everyone is missing my point.

      For instance, in SQL:

      DECLARE @MyCounter int;
      SET @MyCounter = 0;

      Visual Basic:

      Dim MyCounter as Integer
      MyCounter = 0

      C#:

      int MyCounter;
      MyCounter = 0;

      And just look at the iterative structures....same thing. They perform the same function, but the syntax is different and I see no reason for that to be so. It is the same through the structure of the language.

      These are differences for differences sake. Yet they can prevent someone who has years of experience in VB.net for instance, from landing a job programming in C#.net.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    13. Re:Stop It! by wwphx · · Score: 2, Interesting

      I have a button at home from my days of wearing buttons at science fiction conventions that says "C: The power of assembler with the flexibility of assembler."

      Yes, I am old school. The first languages that I learned were Basic, Cobol, RPG, Fortran, followed by Pascal, C, C++, and some assembler. Then lots more. And frankly, I'm bored. Gee, now we have a language that is 100% compatible with Java! If it's so compatible, how is it different? What are the substantial advantages that it offers that I should bother learning it? And how is learning yet another obscure language going to enhance my employability? I saw one of my old teachers many years ago, and she told me that they no longer taught programming theory as a standalone class. Apparently people want to learn a programming language rather than learning how to program.

      Programming theory ignorance and lack of flexibility makes me a sad panda.

      Oh, you left Ada off your list.

      --
      When you sympathize with stupidity, you start thinking like an idiot.
    14. Re:Stop It! by Just+Some+Guy · · Score: 2, Insightful

      In Python:

      mycounter = 0

      That's not just a syntactic difference, and it's not just assigning a value to a variable. Instead, it's creating an int object with a value of 0 and binding the name "mycounter" to it. Since Python objects have types but variables don't (as they're all basically pointers to objects), there's no type declaration necessary - or even feasible without significant ugliness.

      In turn, you're missing my point in that these aren't just cosmetic differences that a little bit of syntax unification can hide. For instance, you include languages on your list that implement single assignment and don't really support (or at least don't encourage) variable assignment in the sense you're describing.

      --
      Dewey, what part of this looks like authorities should be involved?
    15. Re:Stop It! by sycodon · · Score: 1

      Of course whether or not to declare a type when first referencing a variable would be a subject for discussion when designing this mythical common syntax.

      But each one of my examples simply create a container and place a value in it. How the underlying implementation is done is not relevant to me.

      There is no reason each of the languages I cited (as well as any others that use strong typing) should not use identical syntax to do the same thing. (Not the syntax I used, but whatever the "standard" would be.)

      DECLARE @MyCounter int;
      Dim MyCounter as Integer
      int MyCounter;

      All of these contain the same information, the name and the type and in the end, I have a variable that I can manipulate. Yet they rearrange the syntax ....why?

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    16. Re:Stop It! by Surt · · Score: 2, Funny

      It's happening because languages are nowhere near maturity yet. Give it another 150 years and we'll be down to about 5 or 6 commonly used languages. Right now no one has it adequately right.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    17. Re:Stop It! by Just+Some+Guy · · Score: 1

      By "strong typing" you meant "static typing", which is not at all the same. Python is strongly, dynamically typed, and in that language it doesn't even make since to declare the type of a variable, since all variables are pointers.

      Look, I get the gist of what you're saying, but you're not hearing what everyone else is trying to tell you: languages are not the same. You're asking to build an abstraction layer that subsumes all existing languages, and that's just not possible without leaks that are guaranteed to cause more problems than the abstraction can hope to solve.

      "All vehicles are basically the same", you might say, "so they should all have identical interfaces. Someone who learned to drive a car should be able to drive a semi truck without having to re-learn anything. We'll take the average of 4 wheels on cars and 18 wheels on trucks and mandate that all new vehicles have 11 wheels, 10.5-speed manual transmissions, and pneumatic disk brakes. How simple!" Well, that might be appealing to someone averse to learning the differences between cars and trucks, but would suck for anyone who already knew how to use one or the other to their best advantage.

      --
      Dewey, what part of this looks like authorities should be involved?
    18. Re:Stop It! by sycodon · · Score: 1

      Well, I do see your point, but...

      Trucks and cars have steering wheels, brakes, and gas pedals. To go left, you turn the wheel left, to go right, you turn the wheel right. To stop, you mash the brake and to mash the gas pedal.

      If it were languages, you could end up steering right to go left, or pressing the gas pedal 3 time to go faster on this vehicle and twice on this other one..

      Sure, there would be things to learn that are unique to jacking around 30,000lbs trucks rather than 2,000lbs cars, but the steering wheel and the pedals and the mirrors would all be in the same place and work the same.

      OK..well done.

      Not one name called here today...on Slashdot no less.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    19. Re:Stop It! by Anonymous Coward · · Score: 0

      But each one of my examples simply create a container and place a value in it. How the underlying implementation is done is not relevant to me.

      As a programmer, it's very relevant to me. I want each of the languages I use to be as different as possible. Having different syntax helps me remember the context in which I'm working.

      The underlying implementation affects what I need to type in my program. If Python and Java use identical syntax, I could end up attempting to do something that Python allows in Java and having a compile-time error, if I'm lucky, or worse. If Java and C looked identical, it would be easy for me to forget to free memory when I'm done with a pointer since Java doesn't require/allow me to do that.

      And there's a ton of other language-specific things I have to consider as a programmer that become easier to remember if I just switch into a separate "mode" for working with that language. Learning new syntax is really easy once you get used to it. I've programmed in at least 20 different languages and the only found one (objective-c) where I dislike the syntax enough to never want to use it.

      Basically, as long as the underlying mechanics of the language are different, I prefer the syntaxes to be different as well. The C-like languages present the greatest difficulty for me when it comes to reading other people's code. And it's precisely because they can be too similar to each other and I've adapted to coding conventions when writing in those languages to help make them appear different.

    20. Re:Stop It! by Anonymous Coward · · Score: 1, Insightful

      or a new form of mathematical notation in order to learn/work within those different areas.

      No, you don't, because business is a fundamentally social enterprise, whereas programming is a fundamentally mathematical one. There's a reason why all of the different branches of mathematics use different (and sometimes infuriatingly similar) notation - no one ur-notation can express it all and still fit inside a human brain.

    21. Re:Stop It! by ciggieposeur · · Score: 3, Insightful

      "Clojure" and "D"?

      Just shoot me now.

      Why are you so hostile to learning? Clojure is a modern "Lisp done right", with all of the syntactic power of LISP minus quite a bit of historical goop, running on a very modern JVM with the goodies that that provides (the massive portfolio of Java libraries and mostly platform independence). D is a very modern "C++ done right" that is very well-suited for applications where you need the ability to occasionally shoot yourself in the foot (i.e. high performance, constrained memory, low-level access) but most of the time would like to use higher-level conveniences like garbage collection and templates.

      One thing about the multiple sub-disciplines and "schools"...they all use English.

      Sure, they all use English, but they don't say the same thing. (And actually many of them don't. Business is global these days.)

    22. Re:Stop It! by dave87656 · · Score: 1

      Really...isn't it time to rethink all of these different, but same (except for the whacko Python,PHP stuff) and come up with one standard language? Extend it with different libraries if you want

      Sounds like a good idea ... in fact, it sounds like C extended with C++ extended with GTK+.

      C/C++ is low enough for OS's and drivers and extendable enough for GUI's and web based libraries.

      I've used java for the lat 11 years and it's good for cross platform, but in retrospect I wish I'd done the application in C++ and GTK. YMMV.

    23. Re:Stop It! by dave87656 · · Score: 1

      What you are describing is done by the java virtual machine (JVM).

    24. Re:Stop It! by fusiongyro · · Score: 1

      You found two islands of truth amid your sea of misunderstanding.

      First of all, your remarks about Dice are spot on. This is not because programming languages or programmers are stupid, this is because hiring practices for programmers are stupid. Because programming requires intelligence, it's stupid to advertise for programmers as though they are single-use tools. We can learn other languages. In fact, a great deal of good companies have caught on to this and list absurd numbers of languages in the job postings, or mention that you'll have to program in language X, but that you're not required to know it coming in if you know some other languages. Language designers do not define hiring practices. That's up to the business-types: i.e., YOU. So do a better job.

      Secondly, what you're describing is exactly the situation of .NET and (to some extent) the JVM. You create an artificial machine at a slightly higher level of abstraction, and then people can write whatever languages they want and they can call libraries written in other languages. It looks like a great solution to this problem, but it's hiding other problems under the surface, which is where your lack of knowledge becomes a problem.

      There is a world of difference between language syntax and language semantics. True, most languages in wide use today are single-inheritance object-oriented programming languages with a strong procedural bent to them. Is there a world of difference between C# and VB.net? No, but VB.net is very different from traditional VB. They had to pile on a ton of new features which meant some syntactic changes to make VB run on .NET. After all, if you can't use each others' libraries, the exercise gains you nothing. C# is more-or-less intended to be a 1:1 mapping of .NET VM feature to language feature.

      But as everyone else here is trying to point out, language semantics vary between languages. You can't run C++ (note the additional +) on .NET because .NET won't let you inherit from more than one class at a time. C++ does. And this comes hand-in-hand with a ton of other differences: operator overloading, virtual inheritance, and so forth. If you take those features away from C++, you don't have C++ anymore, you have something else rather similar to C#. If you give those features to C#, you don't have C# anymore, you have something that looks like C# but acts like C++. This is important because libraries are constrained by language features. Look at Ruby. You can't use Ruby's standard library from Java, because Java doesn't have blocks. If you make Java use classes to do it instead, your code becomes twice as big and nobody wants to do it. (See the Mango library for example). Likewise with C++, many of the standard library features assume multiple inheritance, particularly with I/O. Input and output are not fancy high-level concepts, they're ground-level fundamentals, and yet there will never be a universal I/O library that all languages prefer, because languages are different. For another example, look at Haskell. Most of my Haskell programs, I treat input as a list of strings and I am free to pretend they're just in memory the whole time because of the optimizations Haskell does. Other languages need an iterator because they can't fake it with laziness.

      The situation becomes obvious when you venture outside the confines of familiar languages and consider languages which you name, like Prolog and Haskell. There is no such thing as assignment in Prolog, there is binding, but because you actually have no explicit control over binding, there's no way to rebind a variable. Indeed, functional and declarative languages (Prolog, Haskell, ML, etc.) have no such thing as assignment or iteration constructs. Until you understand what that means and how someone could possibly program without them, you should really keep your trap shut on this subject. And please don't waste our time responding with "internally they're a

    25. Re:Stop It! by Surt · · Score: 1

      This got modded funny? I don't want to complain about an upmod, but I was entirely serious. Anyone who thinks CS isn't in its infancy is deluded.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    26. Re:Stop It! by Anonymous Coward · · Score: 0

      I've seen programmers cry when told their problems were solved by mathematicians hundreds of years before the invention of the semi-conductor. CS people have a poor attitude, brought over from its engineering heritage. Not that there's anything wrong with engineers' attitudes. I just mean that programming is an exercise in organizing and abstracting over data. Sequential instructions are an implementation detail that ends up obfuscating as often as it makes things clearer.

  53. I disagree by luis_a_espinal · · Score: 2, Insightful

    OK, replying to myself because I obviously didn't have enough coffee yet:

    They list as the benefits over Scala - Extensible type system - Easy transition from Java - Reified Generics

    From those 3 points, only the last one sounds useful...

    You are kidding right? In reality-land, for better or worse, #2 is probably as important of all for a lot of Java shops as #3 if not more. Type erasure sucks balls, but we can get it to work (just as we were able to write good working code without generics.)

    Adoption and ease of transition are things people tend to undervalue/underestimate. Being able to leverage a language with better qualities with as little code change as possible is certainly an enormous, practical incentive. For me, I would give an eye to work on something else (Scala, Ruby/Python on the VM or Clojure), but the reality on the ground is that something like Groovy (using the Groovy++ compiler, though) is the most likely candidate for adoption given its easier transition.

    Gosu seems to embrace the good qualities of next gen JVM languages (and C#) without a substantial deviation to the syntax.

    Necessary /. anti-fanboy disclaimer: Before the /. fanboy crowd displays their usual lack of reading comprehension, I'm not saying that Java syntax is superior or that the syntax sported by the other JVM languages is deficient or bizarre. I'm simply stating the fact that there is an associated, practical cost of transition (in terms of education, time of getting proficiency, possible introduction of coding errors, etc) that is proportional to the syntax differences that need to be overcome - this without considering the external pressures of writing software for solving problems in the right here and right now.

    With infinite time and resources, and zero friction from requirement/requirement changes and organization dynamics, syntax differences would not matter. AFAIK, that is not the context in which programming shops operate. . Another important addition is the use of delegates. Oh my, I can only think of the possibilities we currently can only do in Java with a lot of boilerplate.

    1. Re:I disagree by abigor · · Score: 1

      Great post. The (rather mundane) truth is that Java is so hugely successful because its syntax was designed to be comfortable for C/C++ programmers. Language transitions tend to be painful and it was a smart strategy, though it burdened Java with kind of a clunky syntax.

    2. Re:I disagree by Zancarius · · Score: 1

      though it burdened Java with kind of a clunky syntax.

      It is somewhat humorous that this "clunkyness" is largely due to Java's age and the comparison against newer/cleaner languages recently introduced or gained in popularity. Isn't it funny how retrospect sometimes changes our interpretation all these years later?

      I'm also certain that at least part of the success lurks in the JVM's ability to catch a wide assortment of silly mistakes during compilation that several other languages/interpreters/VMs would likely miss. Being garbage collected is also a definite plus (certainly compared to other GCs like CPython's which drives me nuts for long running applications).

      Regardless, you're absolutely right. Familiarity is often more important than innovation! (Though innovation disguised by familiarity is often better!)

      --
      He who has no .plan has small finger. ~ Confucius on UNIX
  54. Gosu sounds like Gozar, and Gozar is good by ComSon0 · · Score: 1

    I know it can be difficult to select a name that sounds good and it's not (?)offensive(?) on all languages, but here is the thing about the name "Gosu":
    "Gosu", in (BR) Portuguese, sounds exactly like "Gozo", which is one of the many names given to the byproduct of male ejaculation. On the other hand, in (PT) Portuguese, "Gozo" is the world for pleasure.

    This thing runs on a JVM, and I derive no meaning of "Gozo" from that fact...

  55. Legal Test? by cyberElvis · · Score: 1

    Is this some sort of straw man they are throwing out to see if Oracle will "Go sue" them? If not then what is the source of the name?

    --
    My boy, my boy!
    1. Re:Legal Test? by mister_handy · · Score: 1

      http://www.urbandictionary.com/define.php?term=gosu OK snark aside I think that is the meaning they were going for.

  56. Re:stop posting obvious untruths in stories. by Anonymous Coward · · Score: 0

    Slashdot isn't Wikipedia. Constantly educating people who don't write code for a living yet who insist on commenting in stories like this one is a waste of time. Those people should be off railing against the "MAFIAA" or whatever makes them feel important.

  57. Oh, one more note by istartedi · · Score: 1

    The comment is only if you actually have extra code before the fall-through. For example, no comment here:

    case FOO:
    case BAR:
    err=run_foobar(stack);
    break;

    A case like this does:

    case FOO:
    extra_foo_processing(stack,heap);
    /* fall-through on purpose */

    case BAR:
    err=run_foobar(stack);
    break;

    The first case, although technicly fall-through, is not what I think of when I think of fall-through, since no extra code is executed.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  58. WHOOSH by rubypossum · · Score: 1

    *whoosh*

    My post was tongue-in-cheek, and it was coming from a Java programmer (me) of several years.

    You're right, C++ sucks for enterprise application programming. Which is why it shouldn't ever be used for it. And for the same reasons that Java should never be used for it. Java and C++ suck at user interfaces. A person can only know this if they've both used Java and other more modern tools to create enterprise applications. See the link in my previous post for more details. It is the opposite of fast turn-around and rapid development. There are better, faster and less headache inducing ways now. Just look at how much Java IDEs suck at this, despite thousands of man-hours and great talent developing them. This is not the fault of the developers, this is the fault of the language. And it's time people begin progressing away from Java, in the same way we should avoid writing things in COBOL or APL.

    The reaction to my post is kind of why I made it in the first place. Why be so upset when somebody criticizes your language? It seems to me to be a kind of fundamentalism. And the more crappy the religion the more angry and vicious are its fundamentalists.

    --
    I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
    1. Re:WHOOSH by profundus · · Score: 1

      Guess the joke is on me now :") I just got ticked off by all the vicious anti-Java posts appearing here lately. I'm all for newer languages to leverage new advances in language design and design philosophy.

      I agree with you about user interfaces. I don't really know JavaFX, but the fact that it didn't take off probably says something about it.

      However, I do like Java in the server based, enterprise development arena. And I find it odd that you should say it doesn't offer fast turnarounds. Especially now that JSF is a part of the spec, I feel Java is awesome (even though I don't know if we should consider frameworks while talking about the language).

      But again, I probably haven't seen better alternatives. I'll see the link you have provided, and get back to you sir :)

      --
      A new revelation every day
  59. Re:YASWTJ by Anonymous Coward · · Score: 0

    Gosu is Yet Another Slightly Worse Than Java programming language.

    FTFY

  60. Inexperienced Programmers by bill_mcgonigle · · Score: 2, Insightful

    Think of all the talent locked up in someone who has done language A for 10 years but is totally useless to you because your project uses language B? The concepts are the same, yet people's knowledge is arbitrarily walled off in this development environment or that environment. How can this be considered good?

    Innovation doesn't mean re-inventing the wheel.

    Sounds like inexperienced programmers. The first 10 languages you learn are challenging, after that it's all syntax and frameworks.

    Now then, some languages are bundled with extremely baroque and quirky frameworks which can suck up most of your development time. But this language is actually doing it right - by being Java-compatible on the JVM, the programmer can recycle his Java Library knowledge. Parrot is another similar approach, where Perl, Python, Ruby, etc. programmers will be able to trade libraries.

    The bigger problem list is probably:

    JDK,
    CPAN,
    Gems,
    STL,
    PyPi,
    etc.

    These might be worse - they're largely duplication of labor, whereas the languages are at least trying to do something different.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    1. Re:Inexperienced Programmers by sycodon · · Score: 1

      Sounds like inexperienced programmers. The first 10 languages you learn are challenging, after that it's all syntax and frameworks.

      Try explaining that to hiring managers and the HR folks.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    2. Re:Inexperienced Programmers by bill_mcgonigle · · Score: 1

      Try explaining that to hiring managers and the HR folks.

      It's OK, I think - the companies who are smart enough to avoid these pitfalls get the good programmers. Seems like a Darwinian advantage.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  61. extensible type system also means type loaders by llamafirst · · Score: 1

    I am not sure what the "extensible type system" means

    It means that you can add methods or properties to a class without subclassing it. This feature is one of the very few things that I actually like about Objective C.

    http://gosu-lang.org/doc/wwhelp/wwhimpl/api.htm?&context=gosu&src=enhancements&topic=Using_Enhancements

    It also means that Gosu supports custom type loaders that dynamically inject types into the language so you can use them as native objects in Gosu.

    For example, custom type loaders add Gosu types for objects from XML schemas (XSDs) and from remote WS-I compliant web services (SOAP). Later versions of the Gosu community release will include more APIs and documentation about creating your own custom type loaders.

    Modules of code containing type loaders can create entire namespaces of new types. This means that a type loader can import external objects and let Gosu code manipulate them as native objects. There are two custom type loaders that included in Gosu: (1) Gosu XML typeloader. This type loader supports the native Gosu APIs for XML. For more information, see "Gosu and XML". (2) Gosu SOAP typeloader. This type loader supports the native Gosu APIs for SOAP.

    The first Gosu community release does not yet include these add-on typeloaders that support these APIs due to in-progress changes in bundling add-on typeloaders. The Gosu documentation describes the XML and web services APIs right now so you can become familiar with these upcoming APIs.

    For more information http://gosu-lang.org/doc/wwhelp/wwhimpl/api.htm?&context=gosu&src=intro&topic=Extensible_Type_System

  62. Re:stop posting obvious untruths in stories. by MichaelKristopeit162 · · Score: 0
    ur mum's face is a condescending prick.

    why do you cower? what are you afraid of?

    you're completely pathetic.

  63. Re:stop posting obvious untruths in stories. by MichaelKristopeit118 · · Score: 0
    DERIVED = DYNAMIC.

    go read ANYTHING.

    you're an idiot.

    why do you cower? what are you afraid of? that someone will point out that you're lying?

    you're completely pathetic.

  64. I quit() by Anonymous Coward · · Score: 0

    Personally, I am tired of learning new languages. I use Java and C++ for when I need to hammer out some code, I use Jquery/javascript/CSS/HTML for webpage goodness. I use python for when I want to torture myself and constantly relearn how embedded the c-syntax is in my brain. Seriously... sometime you just want to use brac
    WhiningAboutIndentationError: You knew what you were getting into. We have Django. Suck it.

  65. Yawn by scurvyj · · Score: 0

    Yet another language. Just what we need.
    And who's fool decision was it to base it on top of the JVM.

  66. Re:stop posting obvious untruths in stories. by 19thNervousBreakdown · · Score: 1

    You're awfully confident, but I promise you you're wrong.

    Here's a starter: You can't store a string in a statically-typed integer variable. Its type is determined at compile time. One language that has support for both concepts, C#, added support for type inference with the "var" keyword, and then later added support for dynamic types with the "dynamic" keyword. C++0x (more like C++0xff amirite) will support type inference, but not dynamic typing. I'll even save you the trouble of looking it up: http://en.wikipedia.org/wiki/Type_inference

    You should also look up the definition of heuristically. There is no language I know of that will allow any ambiguity in an inferred type--it is a set series of rules, with either a deterministic outcome or a complile-time error. That's not to say they can't use heuristics to make a guess as an optimization, but when you say it's chosen heuristically that implies that it's the base algorithm.

    As an end note, I'm being polite because you sound like you might be going into the field, and when people misunderstand basic concepts it makes my job suck, and calling you a willfully ignorant asshole isn't going to help anything. Hopefully learning that you don't know everything will encourage you to not be so certain you understand things you don't, and you'll be more careful in the future so the rest of us aren't stuck cleaning up some horrible mess of code.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  67. Re:stop posting obvious untruths in stories. by 19thNervousBreakdown · · Score: 1

    At least the mods are doing a good job.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  68. Re:stop posting obvious untruths in stories. by geminidomino · · Score: 1

    The Hitchhiker's Guide to the Galaxy has this to say on the subject of
    "Slashdot trolls":

    ** Entry Begins **

    Slashdot Trolls (Homo Sapiens Asshatus) are an offshoot species that came
    into existence seemingly for the sole purpose of serving as proof of
    concept of "John Gabriel's Greater Internet Fuckwad Theory." The
    Conspiracy Sciences Agency of Omicron Perseii 8 has speculated that John
    Gabriel himself is responsible for the formation of these pests. This is
    generally disregarded, as other researches discount this theory outright
    with the scientific argument: "duh."

    Slashdot trolls are formed when a human of sub-normal intelligence and
    insufficient parental supervision is given access to a large audience
    and the cover of anonymity. The atavism is generally immediate, and
    brings with it a number of physiological changes: thickening of the
    cranium, increased adrenal output, a 90% decrease in cerebral activity,
    and Tourette's syndrome in 99% of cases. The most common and clear
    marking of the slashdot troll, however, is the marked molecular change in
    the victim's pheromones. This results in an ever-present, overpowering
    stench, often described as smelling like bovine excrement.

    Most baffling, however, is the inexplicable aura of anti-Cluons the
    Slashdot troll emits. This field renders the victim completely resistant
    to all known cures for stupidity in the galaxy, save for death by blunt
    force trauma. It has the added function of attracting weak-minded and
    gullible individuals into entering debates on various subjects with the
    troll. Since these "discussions" are incapable of being rational or
    intelligent, due to the Universal Conceptual Value Metric ("The value of
    any discussion can be found by multiplying the IQs of the
    participants") they simply provide the troll the negative attention it
    requires to survive.

    These individuals are referred to as "Troll-feeders," though they are
    known to be called much worse when they actively engage the troll in
    conversation. "Troll Feeding" is currently a 3rd degree misdemeanor on 7
    planets, a second-degree felony on 21 planets, non-actionable on 3
    planets, and a capital offense on every civilized planet, save for Vega
    2. On Vega 2, troll feeders are locked up along with the trolls for life
    without parole.

    As of this writing, the Civil Rights movement on Vega 2 is currently
    protesting, seeking a death sentence in the name of mercy.

    ** Entry Ends **

  69. Re:stop posting obvious untruths in stories. by MichaelKristopeit161 · · Score: 0
    can't speak for yourself?

    you're completely pathetic.

  70. Sorry by mmj638 · · Score: 1

    You lost me at "Java"

  71. Re:stop posting obvious untruths in stories. by Anonymous Coward · · Score: 0

    As an end note, I'm being polite because you sound like

    If he sounds like anything other than a clueless raging idiot, you haven’t been paying attention (or haven’t been paying attention for long enough). Unless your time is really this worthless (well, you are on Slashdot), don’t waste it on him.

    Hopefully learning that you don't know everything will encourage you to not be so certain you understand things you don't, and you'll be more careful in the future

    Was that supposed to be funny? Because it’s comedic gold.

  72. Re:stop posting obvious untruths in stories. by MichaelKristopeit172 · · Score: 0

    EVALUATED = DYNAMIC

    WTF? Any real programmer knows it's "==", not "=". You're pathetically assigning one to the other to try to prop up your useless argument. I guess /. doesn't have a syntax checker in 'preview'.

  73. Re:stop posting obvious untruths in stories. by MichaelKristopeit167 · · Score: 1
    = is an EQUAL sign. you're an idiot.

    "MichaelKristopeit172" is operated by a pathetic individual attempting to steal my identity. to the individual responsible: present yourself to me; admit what you've done and i will bring upon you the ultimate punishment for your transgressions.

  74. Re:stop posting obvious untruths in stories. by MichaelKristopeit172 · · Score: 0

    "=" is an assignment operator and "==" compares two objects. You are pathetic.

    I see you're copying from the old "transgressions" text again and that you still suffer from an inferiority complex preventing you from capitalizing "I". Pathetic.

  75. Re:stop posting obvious untruths in stories. by MichaelKristopeit165 · · Score: 1
    considering english is not an object oriented language, and many other procedural languages use the equal sign for comparison, and also considering that my use could be implication or comparison equally correctly, YOU ARE AN IDIOT.

    you cower in the shadows of others... why? what are you afraid of?

    you're completely pathetic.

    "MichaelKristopeit172" is operated by a pathetic individual attempting to steal my identity.

    to the individual responsible: present yourself to me; admit what you've done and i will bring upon you the ultimate punishment for your transgressions.

  76. Re:stop posting obvious untruths in stories. by MichaelKristopeit172 · · Score: 0

    You were huffing and puffing about programming - at least you pretend to think you know about programming - so use the correct syntax. MK Fail. You are pathetic.

  77. Re:stop posting obvious untruths in stories. by MichaelKristopeit164 · · Score: 1
    i will use the correct syntax when i'm programming... perhaps you're not aware this is not programming.

    you're an ignorant hypocrite.

    "MichaelKristopeit172" is operated by a pathetic individual attempting to steal my identity.

    to the individual responsible: do you want to die? do you think i couldn't find you? why haven't you chosen to present yourself to me? why do you cower?

    you're completely pathetic.

  78. Re:stop posting obvious untruths in stories. by MichaelKristopeit172 · · Score: 0

    i will use the correct syntax when i'm programming

    You mean you will encounter syntax errors while playing with:
    10 goto 10

    do you want to die? do you think i couldn't find you?

    Oh my stars. Another death threat on slashdot by a MichaelKristopeit account? What's next? Are you going to post your address again? And that sad Google map image of a house that comes up even if you leave out the street address? MK Fail. Pathetic.

  79. Re:stop posting obvious untruths in stories. by MichaelKristopeit163 · · Score: 1
    you are unable to answer the question? you feel threatened by it?

    is this why you cower? are you afraid of me? do you think i'm more than capable of taking your life? is this why you pretend to be me? do you wish you were me? do you NEED to be me? OR do you just NEED to NOT BE YOURSELF?

    you're completely pathetic.

    "MichaelKristopeit172" is operated by a pathetic individual attempting to steal my identity.

    to the individual responsible: i assume you welcome death. present yourself to me; admit what you've done, then i will bring upon you the ultimate punishment for your transgressions.

  80. Re:stop posting obvious untruths in stories. by MichaelKristopeit172 · · Score: 0

    do you think i'm more than capable of taking your life?

    I think you are barely capable of stringing words together to form a sentence. That is why you copy and paste the same drivel in every post. Pathetic.

    You truly are a MichaelKristopeit choir. Each voice in your head shouting louder than the next. Maybe it's just your broken shift key but your odd capitalization adds an interesting cadence to your hyperbolic rants.

  81. Re:stop posting obvious untruths in stories. by MichaelKristopeit163 · · Score: 1
    considering an individual is either capable or incapable of forming a sentence, and you're responding to such a sentence, you're continued insight and offerings of judgement have one again proven obviously ignorant. you are completely pathetic.

    you spend your days pretending to be me... i spend my days being me. why do you cower in the shadows of others? do you NEED to be me, or do you simply NEED to NOT BE YOURSELF?

    you are NOTHING.

    "MichaelKristopeit172" is operated by a pathetic individual attempting to steal my identity.

    to the individual responsible: i assume you welcome death. present yourself to me; admit what you've done, then i will bring upon you the ultimate punishment for your transgressions.

  82. Re:stop posting obvious untruths in stories. by MichaelKristopeit175 · · Score: 1

    Copy, paste, copy, paste. MK Fail. Pathetic.

  83. Re:stop posting obvious untruths in stories. by MichaelKristopeit166 · · Score: 1
    "MichaelKristopeit175" is operated by a pathetic individual attempting to steal my identity.

    to the individual responsible: i assume you welcome death. present yourself to me; admit what you've done, then i will bring upon you the ultimate punishment for your transgressions.