Slashdot Mirror


Lobster, a New Game Programming Language, Now Available As Open Source

Aardappel writes "Lobster is a new programming language targeting game programming specifically, building on top of OpenGL, SDL 2 and FreeType. The language looks superficially similar to Python, but is its own blend of fun features. It's open source (ZLIB license) and available on GitHub."

153 comments

  1. gag me with a shift button by decora · · Score: 5, Informative

    i := find([ 1, 2, 3 ]): _ > r

    yeah. no. thanks but no thanks.

    1. Re:gag me with a shift button by fph+il+quozientatore · · Score: 4, Insightful

      Still looks like a step forward from Perl.

      --
      My first program:

      Hell Segmentation fault

    2. Re:gag me with a shift button by pmontra · · Score: 2

      I agree that the meaning of this one liner is not easy to guess but there are other more fundamental things that bother me in Lobster. One is why they should make a difference between = to assign and := to define & assign. The first assignment should define. Most languages just do that and everybody is happy. The second rant is about the pythonish end of line colon. The : is ugly. It still hits me as a bad taste when writing Python: if a statement looks complete at the end of the line, then it's should be assumed to be complete. It doesn't sound difficult even with semantic spaces which IMHO are a Bad Choice but I won't spend words on that.

      Rants ended, this language has some merits. The optional type declaration should make everybody happy. Immutable objects should be great for parallel and functional processing. Native vector operations are great. But there is one final rant: please don't mix objects and functions. It should be class.max and not max(objects). Two paradigms into one language are not a nice thing to look at (even if there are plenty of examples of this kind of languages).

      Overall my first look opinion of Lobster is: a little too much on the ugly side of aesthetics but promising. It's always nice to see a new language even if the chances it will survive a couple of years are slim (that's true for every new language). Ideas spread so keep inventing.

    3. Re:gag me with a shift button by Anonymous Coward · · Score: 1

      shut your mouth when grownups are talking. ;) /what's wrong with perl? It only looks odd to you because you don't know the language. To me ( 20 year C programmer and 10 year perl programmer ) it's extremely straight forward.

    4. Re:gag me with a shift button by Steve_Ussler · · Score: 1

      People who dont like Perl, dont know Perl.

    5. Re:gag me with a shift button by Anonymous Coward · · Score: 1

      Because if they really knew it, they'd hate it with the fiery passion of a thousand suns?

      Oh wait, I'm thinking of Javascript. Carry on.

    6. Re:gag me with a shift button by dywolf · · Score: 1

      press the buttons in the right order and win!
      Call it....Rock Band Lobster

      --
      The guy who said the election was rigged won the presidency with the second-most votes.
    7. Re: gag me with a shift button by Anonymous Coward · · Score: 0

      The reason to have a distinction between assign and define & assign is that it prevents a whole class of errors due to typos.

      Consider:

      CatLives = 9
      If inWater:
      CatLines = 0
      Else
      CatLives = 8

    8. Re:gag me with a shift button by hedwards · · Score: 1

      Or Python or Basic.

      Perl has a bad rap mainly because systems adminstrators have abused it to hack out a quick solution. But, really, any language can have that happen. There's nothing inherently evil about Perl.

      Python and Basic, OTOH, both have some pretty evil formatting requirements.

    9. Re:gag me with a shift button by Infiniti2000 · · Score: 1

      I agree that the meaning of this one liner is not easy to guess but there are other more fundamental things that bother me in Lobster.

      I think you're agreeing to something the GP didn't say. By virtue of the subject, he's referring to the number of times you have to use the SHIFT key to type up that line, slowing your programming down. Understanding the line is a different question.

    10. Re: gag me with a shift button by Anonymous Coward · · Score: 0

      CatLives = If inWater: 0 Else 8

    11. Re:gag me with a shift button by kraut · · Score: 1

      Python only forces you to indent in the way any sane person would indent anyway. That's not evil.

      --
      no taxation without representation!
    12. Re:gag me with a shift button by pmontra · · Score: 1

      Oh now I see. I woosh myself.

    13. Re:gag me with a shift button by swilde23 · · Score: 1

      Please tell me that people aren't writing games in Perl... for the love of all that is sacred in this world.

      --
      There are 10 types of people in the world. Those that understand this sig, and those that beat up people who do.
    14. Re:gag me with a shift button by samkass · · Score: 1

      It's always nice to see a new language even if the chances it will survive a couple of years are slim (that's true for every new language). Ideas spread so keep inventing.

      IMHO, it's almost never nice to see a new language. They really couldn't have just extended Lua? What new value is offered by a new syntax for the same concepts everyone else has?

      --
      E pluribus unum
    15. Re:gag me with a shift button by hedwards · · Score: 1, Informative

      It hides formatting information in whitespace, something that no sane person would do.

      It also ends lines at the new line rather than at a ;, which means that you're in a position where you can end up with long lines at times, where normally, you would just hit enter and continue on the next line.

      In general though, any language that depends upon white space for anything other than separating elements is just asking for trouble.

    16. Re:gag me with a shift button by tepples · · Score: 3, Insightful

      It also ends lines at the new line rather than at a ;, which means that you're in a position where you can end up with long lines at times, where normally, you would just hit enter and continue on the next line.

      Python uses newline as a statement delimiter only if all bracketing constructions (...) [...] {...} are closed. The arguments of any function call, for instance, can be split over multiple lines, as can the elements of a list or dictionary or a long expression. And back when print was a statement (Python 2) as opposed to a function (Python 3), it was my common practice to do something like this:

      print ("%s: not raising price because %s"
              % (sku, reason))

    17. Re:gag me with a shift button by Anonymous Coward · · Score: 0

      Python only forces you to indent in the way any sane person would indent anyway. That's not evil.

      Funny, when I took compilers using whitespace as being syntactically significant was considered a stupid idea. Developers can't agree on how many spaces to use, and people set their editors to display them differently.

      Python will break if you use tabs versus spaces.

      That aspect of Python is absolutely terrible. To me, it's one of the worst design choices in a language I've ever seen.

    18. Re:gag me with a shift button by Laxori666 · · Score: 1
      Actually, having something like `len(x)` instead of `x.len()` has some benefits. Check out Guido's rationale for why it was done that way in python:

      There are two bits of “Python rationale” that I’d like to explain first.

      First of all, I chose len(x) over x.len() for HCI reasons (def __len__() came much later). There are two intertwined reasons actually, both HCI:

      (a) For some operations, prefix notation just reads better than postfix — prefix (and infix!) operations have a long tradition in mathematics which likes notations where the visuals help the mathematician thinking about a problem. Compare the easy with which we rewrite a formula like x*(a+b) into x*a + x*b to the clumsiness of doing the same thing using a raw OO notation.

      (b) When I read code that says len(x) I know that it is asking for the length of something. This tells me two things: the result is an integer, and the argument is some kind of container. To the contrary, when I read x.len(), I have to already know that x is some kind of container implementing an interface or inheriting from a class that has a standard len(). Witness the confusion we occasionally have when a class that is not implementing a mapping has a get() or keys() method, or something that isn’t a file has a write() method.

      Saying the same thing in another way, I see ‘len‘ as a built-in operation. I’d hate to lose that. //

    19. Re:gag me with a shift button by pmontra · · Score: 1

      Yes I know his argument. I just don't buy and I could build counterarguments but it doesn't matter. At the end even programming languages are not completely rational and our tastes are even less so.To me Python looks similar to C and tastes of '80s, with all those unnecessary double underscores (Guido should have uses a keyword for that). Maybe that is why it is getting successful as a system language. But there is the inconvenience of paying attention to spaces when copy pasting code around, which is a pain and a source of disasters waiting to happen.

    20. Re:gag me with a shift button by Anonymous Coward · · Score: 0

      Heard of Frozen bubble?

    21. Re:gag me with a shift button by Laxori666 · · Score: 1

      Yea ultimately it's a matter of taste. I am happy and productive programming in Python so I know that I like it =). I agree with the spaces thing. That's the one downside I can think of for having the space-indentation.

    22. Re:gag me with a shift button by Anonymous Coward · · Score: 0

      There's an intelligent objection to this syntax, but neither you nor the rest of the shallow ignorant imbeciles at /. have grasped it ... it doesn't allow for functional composition. The syntax of this language forces an imperative style. Compare to, say, C#, with

      list.Take(5).Where(x => x > r).Select(x => Math.Sin(x)).Sum()

    23. Re:gag me with a shift button by Anonymous Coward · · Score: 0

      "he's referring to the number of times you have to use the SHIFT key to type up that line"

      Which establishes him as a cretin. Compare it to its C# equivalent: var i = (new int { 1, 2, 3 }).Where(x => x > r);

  2. Too soon by Anonymous Coward · · Score: 0

    I understand that this project has been alive for around 9 days. Isn't that a little too soon for this advertisement?

    1. Re:Too soon by robthebloke · · Score: 2

      Well you know, he has added support for OpenGL 1.0, and every so subtely changed the function names and arguments from the OpenGL standard:

      gl_scale(0.5):

      I bet he's the kind of C++ programmer who does this:

      #define begin {
      #endif end }
      if( foo )
      begin
      // yeah, I loves pascal I do!
      end

    2. Re:Too soon by robthebloke · · Score: 4, Funny

      The kind that substitues a #define with a #endif....

    3. Re:Too soon by Steve_Ussler · · Score: 1

      :) yes.

    4. Re:Too soon by Anonymous Coward · · Score: 0

      The kind that substitues a #define with a #endif....

      Or maybe there was a #define endif define somewhere up above too? :D

  3. Dynamically Typed? by Wattos · · Score: 4, Insightful

    Dynamically Typed with Optional Typing

    Thanks, but no thanks, I prefer to stay with statically types languages. I know that the "kewl" kids love dynamically types languages, but it becomes a horror for maintenance. Ill be sticking with UDK in the meantime

    1. Re:Dynamically Typed? by buchner.johannes · · Score: 5, Insightful

      It really depends what you are doing. For many projects, scripting with some OOP is good enough (all those web projects, RoR, etc.). Having short code in an expressive language leads to less bugs.

      Static typing is extremely useful because it catches all mistakes of a certain class. However, other mistakes you still have to unit test for. So if you are unit&integration testing well, the benefit of static typing is small, and you are capturing more mistakes than static typing would.

      For projects where you have contract-like, long-term stable interfaces/APIs, yes, use static typing. But don't pretend it's for every project.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    2. Re:Dynamically Typed? by allcoolnameswheretak · · Score: 2

      I agree.

      A robust, statically typed language is for the framework and core functionality.
      Dynamic typing is for scripting languages. As the name implies - for running short, often modifiable scripts in a well defined context.

      I don't get why some people insist on going dynamic all the way.

    3. Re:Dynamically Typed? by aaaaaaargh! · · Score: 1

      Hm, count me among the skeptics, too. The problem is that "dynamic typing" creates principal performance bottlenecks - not good for games. The golden rule is to compute as much as possible at compile time using a strong type system, including type checking, type inference, bounds checking, overflow checks. Heck, with a strong enough type system you might even be able to avoid most of runtime exception handling (see e.g. the design goals of Parasail). What you want is to encourage the programmer to use very limited subtypes to e.g. be able to optimize loops and procedure calls based on known compile-time constraints.

      Just about the only place where you really need dynamic types is dynamic dispatch in OOP, which might not be the best programming paradigm when performance matters anyway.

    4. Re:Dynamically Typed? by Anonymous Coward · · Score: 2

      I don't get why some people insist on going dynamic all the way.

      Probably because they never had to. I like Python, quite a lot, but at some point you just throw it away because running (help) on every ill-documented object you encounter stops being funny.

    5. Re:Dynamically Typed? by robthebloke · · Score: 2

      It's the same reason why people use virtual everywhere, or make every class a template: It's the latest 'trick' they've discovered, and they think it's the silver bullet solution to everything. 12 months down the line, the painful maintainence nightmares they've created will encourage them to do things differently next time.

    6. Re:Dynamically Typed? by Xest · · Score: 3, Insightful

      "It really depends what you are doing. For many projects, scripting with some OOP is good enough (all those web projects, RoR, etc.). Having short code in an expressive language leads to less bugs."

      Are you sure you're not conflating two different things here? It sounds like you're saying some languages are better for short, more expressive code, but that's not the same as static vs. dynamic typing.

      The only increase in code from static typing is explicit conversion, but I do not see how this extra code can increase bugs, on the contrary, it's what often decreases bugs in applications written with static typing because the developer has to explicitly declare and perform the possible conversions. In contrast, with a dynamically typed language you're relying on the interpreter to guess, which is much more error prone.

      If you perform a conversion in a statically typed language and it's wrong, you know the second you try and execute, but in a dynamically typed language you may not know there's a problem until you hit some edge case input, which is more likely to get out into production due to the subtle nature of it.

      Do you have any examples of the classes of problem you believe dynamic typing avoids but static typing doesn't? You make the assertion that if you unit and integration test a dynamically typed language you capture more mistakes than you would with a statically typed language. I don't think that's ever the case, because static type makes capture of certain errors explicit in the implementation, the faults are unavoidable when you attempt execution, whilst dynamic typing relies on you stumbling across the error during execution, which means to capture it with unit tests means it's only as good as your unit tests which will rarely be as good as explicit and inherent capture of errors.

      I agree that dynamic code has it's place - where you want to make quick changes, dynamic changes and want to see change instantly or where you don't care about code quality because you're just doing prototyping or proof of concept. But I think dynamic code is always inherently more error prone, I think it's a fallacy to pretend otherwise and I've never seen any evidence to suggest dynamically typed code is less error prone than statically typed code so I'd be intrigued to see it because I don't see how inherent ability to capture a certain class of errors coupled with tools for finding every other class of errors can ever be worse than no inherent ability to capture that class of errors with the same tools to find the other classes of errors. It just doesn't make sense.

    7. Re:Dynamically Typed? by Anonymous Coward · · Score: 1

      I know that the "kewl" kids love dynamically types languages

      Just to play devil's advocate, the notation we all learn for math isn't typed in any sane way. Typically you'll write a function and then tack on some prose that says, "for all positive integers". If anything, optional typing gets us back to math which is older and decidedly not "kewl".

      That said, I much prefer C to "scripting" languages. I have a hard time imagining a dynamic language for anything other than scripting or inelegant web projects where managers are telling you to "just throw more hardware at it". Typing is optimization. The devil's advocate could argue further that premature typing is premature optimization. Perhaps the best of both worlds would be to have a warning level for the compiler that flagged anything that wasn't properly typed. For production, you'd make sure you nailed down all the types. Of course a lot of programmers are no more disciplined about compiler warnings than they are about bounds-checking...

    8. Re:Dynamically Typed? by Anonymous Coward · · Score: 2, Insightful

      How many games have you written, exactly? I've worked on AAA games from 1995 to today, and most of the industry is using dynamically-typed languages for scripting, and has been since the days of QuakeC. The iteration time is so much faster because the compiler doesn't have to work all that shit out up front. Iteration time is king in game production. Runtime is important too but we all know (right?) that only 10% of your code is reponsible for 90% of your runtime. The other 90% of your code can bloat by 2-3x if you get that 10% right. Premature optimization is still the root of all evil, and avoiding languages with fast developer iteration times because they are slower at runtime is a classic example of this. Plus, remember, your processor time is not going to ALU ops. ALU ops are free except in very specific cases (that 10%). For the other 90% all your time is going to memory waits. You might be waiting for dozens of cycles so what difference is it if you run 1 ALU op or 12 ALU ops in parallel with that? Interpreted code is free if your memory access patterns are bad enough. And they are, believe me.

    9. Re:Dynamically Typed? by The+Cat · · Score: 2

      Get it done cheap and fast, and most of all cheap. Then fire everyone.

      The AAA game market is not a good example of tight programming.

    10. Re:Dynamically Typed? by Anonymous Coward · · Score: 0

      How many games have you written, exactly? I've worked on AAA games from 1995 to today, and most of the industry is using dynamically-typed languages for scripting, and has been since the days of QuakeC. The iteration time is so much faster because the compiler doesn't have to work all that shit out up front. Iteration time is king in game production.

      Premature optimization is still the root of all evil, and avoiding languages with fast developer iteration times because they are slower at runtime is a classic example of this.

      It could also be said that avoiding languages which are faster at runtime because they have slower developer iteration times is also a classic example of this.

    11. Re:Dynamically Typed? by firewrought · · Score: 1

      The only increase in code from static typing is explicit conversion.

      Don't forget (1) type declarations; (2) array initializers, (3) storage class identifiers; (4) interfaces; (5) generic types; (6) more verbose API's for reflection (and damn near everything else); and (7) mandatory class "container" for static methods, constants, and globals. And at the design level, there's even more opportunity for brevity since various cheats are available, such as defining classes and methods at runtime, etc.

      Of course, that's talking in generalities. Static langs are doing more now to reduce verbage and copy some dynamic-language "feel". C# especially since it introduced local type inference, anonymous methods/closures, LINQ, and DLR...

      --
      -1, Too Many Layers Of Abstraction
    12. Re:Dynamically Typed? by Xest · · Score: 1

      I'm not sure that a lot of those things are really static typing overhead, for example even in some dynamic languages you still have to type var.

      A lot of the things you mention are more related to OOP than specifically a result of static vs. dynamic typing, for example most dynamic languages still have interfaces. Take point 7 also for example - C++ doesn't require a mandatory class container for static methods, constants and globals, this is entirely a language specific thing.

    13. Re:Dynamically Typed? by aaaaaaargh! · · Score: 1

      We're talking about a new language; the claim that fast easy development cannot be combined with strong typing and and compile-time checking is totally unjustified. There is absolutely no reason why a language with "dynamic types" is, could, or should lead to easier development or faster development cycles, particularly not if automatic type inference is available. In fact, the opposite is true due to improved error checking at compile time in a strongly and statically typed language.

      Even less understandable is your claim that that strong static typing, which allows for compile time optimizations and many error checks at compile time, is somehow an instance of premature optimization. On the contrary, strong typing allows the compiler to optimize, leaving the programmer free to do something more important than optimizing.

      Now the ironic thing about your post is that the gaming industry has had and still has a tendency to use not-so-great dynamically-typed scripting languages even in the presence of better alternatives, a misfeature that every modder can confirm. To be fair the originally not so great languages (like e.g. Lua) have caught up and are quite fine by now.

    14. Re:Dynamically Typed? by Hentes · · Score: 1

      If you perform a conversion in a statically typed language and it's wrong, you know the second you try and execute, but in a dynamically typed language you may not know there's a problem until you hit some edge case input, which is more likely to get out into production due to the subtle nature of it.

      Dynamic typing doesn't mean those languages are typeless. Type errors like trying to add a string to a number still get caught at runtime. Unlike static languages, where a wrong cast can make the code compile and the program will never complain afterwards, leaving you wondering where those segfaults are coming from.

      Do you have any examples of the classes of problem you believe dynamic typing avoids but static typing doesn't? You make the assertion that if you unit and integration test a dynamically typed language you capture more mistakes than you would with a statically typed language. I don't think that's ever the case, because static type makes capture of certain errors explicit in the implementation, the faults are unavoidable when you attempt execution, whilst dynamic typing relies on you stumbling across the error during execution, which means to capture it with unit tests means it's only as good as your unit tests which will rarely be as good as explicit and inherent capture of errors.

      Static error checking is a shallow way to test your code, and will only catch simple syntactic errors, that usually don't even occur in a dynamic language with a less complicated syntax. Regardless of the language you're using, testing should be done at runtime. And dynamic languages with their flexibilty and high reflectivity make unit testing much easier and much more powerful.

    15. Re:Dynamically Typed? by Anonymous Coward · · Score: 0

      So if you are unit&integration testing well, the benefit of static typing is small

      I disagree. Unit&integration testing only catches them when you run the tests, whereas a statically typed language and a good IDE allows you to catch them as soon as you make them, and (to me at last) this is a big advantage. They're stupid bugs that shouldn't require testing to discover.

    16. Re:Dynamically Typed? by Anonymous Coward · · Score: 0

      Dynamic typing doesn't mean those languages are typeless. Type errors like trying to add a string to a number still get caught at runtime. Unlike static languages, where a wrong cast can make the code compile and the program will never complain afterwards, leaving you wondering where those segfaults are coming from.

      It's called strong typing, which is orthogonal to static/dynamic. Many dynamic languages will gladly let you add numbers with strings (looking at you, JS, []+{}#@!) and compare them.

      And of course, you won't need to make wrong casts to add together an Invoice and a Customer. Hey, it responds to :add message! By the way, lots of casts in a statically typed program is a code smell, which will be pointed to you by any decent IDE.

      Static error checking is a shallow way to test your code, and will only catch simple syntactic errors, that usually don't even occur in a dynamic language with a less complicated syntax. Regardless of the language you're using, testing should be done at runtime. And dynamic languages with their flexibilty and high reflectivity make unit testing much easier and much more powerful.

      I can't even facepalm that much. "Add a string to a number" is simple syntactic error? Trying to multiply time-to-delivery by an invoice is a simple syntactic error?

      You can and you should use testing with statically typed languages, but many of dynamic typed runtime tests are simply NIH for things a static checker would catch for you.

    17. Re:Dynamically Typed? by styrotech · · Score: 1

      Are you sure you're not conflating two different things here? It sounds like you're saying some languages are better for short, more expressive code, but that's not the same as static vs. dynamic typing.

      The only increase in code from static typing is explicit conversion, but I do not see how this extra code can increase bugs, on the contrary, it's what often decreases bugs in applications written with static typing because the developer has to explicitly declare and perform the possible conversions. In contrast, with a dynamically typed language you're relying on the interpreter to guess, which is much more error prone.

      If you perform a conversion in a statically typed language and it's wrong, you know the second you try and execute, but in a dynamically typed language you may not know there's a problem until you hit some edge case input, which is more likely to get out into production due to the subtle nature of it.

      Strictly speaking I think you're also "conflating two different things" here.

      Static vs dynamic typing is somewhat orthogonal to the less well defined strong vs weak typing axis. Static means type checking is done at compile time and dynamic means it happens at runtime. Requiring explicit conversions is generally a strong typing thing and both static and dynamic languages can be like that.

      eg Python is dynamically typed in that type checking happens at runtime, but it is still strongly typed in that you need to explicitly convert between types.

      Unlike other dynamic languages (eg PHP and Javascript) that are weakly typed and let you do stuff like adding strings and integers by implicitly converting between types.

    18. Re:Dynamically Typed? by firewrought · · Score: 1

      even in some dynamic languages you still have to type var

      And "var" is terser than the average class/type name.

      most dynamic languages still have interfaces

      ...which are implicit/ducked-typed. In a statically-typed system, you explicitly define the interface for the sake of the type system. To help it help you, so to speak.

      C++ doesn't require a mandatory class container for static methods, constants and globals, this is entirely a language specific thing

      Granted, this is more language specific, but most dynamic langs have evolved from being able to run as straight-line scripts with no nesting/front-matter. I was trying to list all of the things that make dynamics langs briefer in general... beyond casts. :-)

      --
      -1, Too Many Layers Of Abstraction
    19. Re:Dynamically Typed? by dkf · · Score: 1

      Dynamically Typed with Optional Typing

      Thanks, but no thanks, I prefer to stay with statically types languages. I know that the "kewl" kids love dynamically types languages, but it becomes a horror for maintenance. Ill be sticking with UDK in the meantime

      As the project becomes larger, you get more and more of the code devoted to converting values between different type systems and serializations and all that stuff. It's boring code, but often just slightly too complex for a computer to do for you without some oversight. Going to a looser dynamic type system greatly reduces this overhead.

      That's not to say that strict static types are useless; they're very useful when developing the components that the dynamically-typed language sticks together. Indeed, using multiple languages for the overall project is a very productive technique.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  4. Alternatively you could just by Chrisq · · Score: 1

    Alternatively you could just use the Python OpenGL bindings (r pick your favourite language). From the project home page I can't see any reason why this language is better than many existing, stable, and optimised languages for accessing OpenGL.

    1. Re:Alternatively you could just by jones_supa · · Score: 1

      Python OpenGL bindings

      Pygame and Pyglet are a couple of other Python-based choices.

    2. Re:Alternatively you could just by Anonymous Coward · · Score: 0

      Thanks for the warning. Being in the same category as Python, Whitespace and Brainfuck makes this language one to avoid.

    3. Re:Alternatively you could just by Chrisq · · Score: 1

      Thanks for the warning. Being in the same category as Python, Whitespace and Brainfuck makes this language one to avoid.

      Funny I must be the only person with moderate feelings about Python. I think its OK, but prefer static typing for anything past prototyping and indent is a bit of a nuisence

  5. "Fun features"? by Viol8 · · Score: 4, Insightful

    Languages don't have "fun" features, they either have useful features or bloat.

    Looks like yet another me-too language that's someones pet project that will be forgotten about this time tommorow.

    1. Re:"Fun features"? by ameen.ross · · Score: 3, Informative

      In this case it is the submitter's pet project.

      --
      $(echo cm0gLXJmIC8= | base64 --decode)
    2. Re:"Fun features"? by doti · · Score: 1

      I do think Perl has features that are fun to use. In other words, a feature can be useful _and_ fun.

      --
      factor 966971: 966971
    3. Re:"Fun features"? by doti · · Score: 1

      Ok, now I have read a bit about Lobster style. I looks fun, too.

      Unfortunately, it uses indentation to define blocks, like Python, which ruins it for me.

      --
      factor 966971: 966971
  6. Just what is needed! by Anonymous Coward · · Score: 1

    Another programming language! Why do people keep reinventing the spoon? Is it all CS-majors that feel they need to make a mark on the world?

    1. Re:Just what is needed! by RaceProUK · · Score: 5, Funny

      Another programming language! Why do people keep reinventing the spoon?

      Which spoon? The soup spoon? Teaspoon? Tablespoon? Dessert spoon? Wooden spoon?

      --
      No colour or religion ever stopped the bullet from a gun
    2. Re:Just what is needed! by Anonymous Coward · · Score: 0

      The reason is that there is no spoon.

    3. Re:Just what is needed! by Anonymous Coward · · Score: 4, Funny

      At least it's open source, you can always fork it.

    4. Re:Just what is needed! by TWiTfan · · Score: 1

      Why do people keep reinventing the spoon? Is it all CS-majors that feel they need to make a mark on the world?

      So that they can delude themselves that their also-ran game programming language is going to catch on and become all the rage, as if all the big game developers are going to throw away their uber-expensive proprietary development environments and rewrite their engines in some shitty new open-source language that has shit for documentation, a billion bugs, no IDE support, and a micro-fraction of the libraries available for even the lamest existing language.

      --
      The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
    5. Re:Just what is needed! by Xest · · Score: 1

      To be fair developing a programming language is actually an excellent project for anyone wanting to further their comp. sci./development skills.

      There's just absolutely no need to plaster it over the front page of a news site on the internet. Keep it to yourself, no one cares.

    6. Re:Just what is needed! by Anonymous Coward · · Score: 0

      At least it's open source, you can always spork it.

      FTFY

    7. Re:Just what is needed! by The+Cat · · Score: 1

      You must be a real treat with the ladies

    8. Re:Just what is needed! by Xest · · Score: 1

      Yeah, just don't tell my girlfriend, she gets jealous.

    9. Re:Just what is needed! by Applekid · · Score: 1

      Why do people keep reinventing the spoon? Is it all CS-majors that feel they need to make a mark on the world?

      So that they can delude themselves that their also-ran game programming language is going to catch on and become all the rage, as if all the big game developers are going to throw away their uber-expensive proprietary development environments and rewrite their engines in some shitty new open-source language that has shit for documentation, a billion bugs, no IDE support, and a micro-fraction of the libraries available for even the lamest existing language.

      Throw enough shit at a wall and eventually something will stick. I'm pretty sure that's how PHP got any use at all. :)

      Is compiler design still part of a healthy CS diet? That means thousands of languages are being pumped out every semester. It takes a special kind of ego to think any of them are worth a damn.

      Actually, the wide variety of commercial home-use 3D printers out there seems to follow this model pretty closely. Get smart enough to make one and all of a sudden they think their version is so relevant that they'll be the next Makerbot (incidentally, also stuck to the wall)

      --
      More Twoson than Cupertino
    10. Re:Just what is needed! by Anonymous Coward · · Score: 0

      You mean this:

      http://progopedia.com/dialect/spoon/

      (a programming language called Spoon)

    11. Re:Just what is needed! by Anonymous Coward · · Score: 0

      Heh... As often as not, you just simply get forked...

  7. Not needed, thanks by Anonymous Coward · · Score: 1

    No thanks, already have a perfect programming language. Why reinvent the wheel when the old wheel still works ok?
    Mostly we don't need new languages we simply need better libraries.

    1. Re:Not needed, thanks by SuricouRaven · · Score: 2, Insightful

      We've had a perfect programming language since C.

      That's why everything since has copied the syntax and half the operators.

    2. Re:Not needed, thanks by spongman · · Score: 2

      We've had a perfect programming language since C.

      And a whole bunch of segfaults, too.

    3. Re:Not needed, thanks by Anonymous Coward · · Score: 0

      Yeah, I'm sticking with Java, too.

    4. Re:Not needed, thanks by Remus+Shepherd · · Score: 1

      We've had a perfect programming language since Fortran.

      That's why everything since has copied the syntax and half the operators.

      Fixed that for you. Where did you think most of C syntax came from?

      --
      Genocide Man -- Life is funny. Death is funnier. Mass murder can be hilarious.
    5. Re:Not needed, thanks by SuricouRaven · · Score: 1

      I just looked up some Fortran code. It doesn't look very C-like. No semicolons, no curly braces, some functions take bracketed paramaters while others do not, and the example code on Wikipedia contains a lot of things that just make no sense to me. Like 'IF (IA) 777, 777, 701' - What does that do? There is no variable I can find called IA. It may be a good language once you've learned it, but it doesn't look remotely like C. If anything, I'd say it shows some simularity to BASIC.

    6. Re:Not needed, thanks by Megane · · Score: 1

      Where did you think most of C syntax came from?

      BCPL and maybe a bit of Algol? (Those $( and )$ represent curly braces for uppercase-only terminals.)

      (Wow, I had forgotten that Amiga OS was originally written in BCPL.)

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    7. Re:Not needed, thanks by The+Cat · · Score: 1

      C syntax sure as hell didn't come from FORTRAN. What the hell mixture of recreational chemicals are you on?

    8. Re:Not needed, thanks by Anonymous Coward · · Score: 0

      You have a mini strawman there as the parent did not mention Java at all.

    9. Re:Not needed, thanks by tepples · · Score: 1

      BCPL contains the name of the three languages that were spun off from it: B, C, and c-PLus-plus.

    10. Re:Not needed, thanks by Anonymous Coward · · Score: 0

      C's syntax can from BCPL and B. It doesn't look anything like Fortran.

    11. Re:Not needed, thanks by Hognoxious · · Score: 1

      I'd say it shows some simularity to BASIC.

      Does it show much basicality to Simula?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  8. Submitter is Committer by Anonymous Coward · · Score: 0

    Jeez, Soulskill, pick up on the obvious self promotion once in your life.

    heh captcha: sodomy

    1. Re:Submitter is Committer by jones_supa · · Score: 2

      Jeez, Soulskill, pick up on the obvious self promotion once in your life.

      The plug would have been received better if the submitter just had said upfront in the summary that "this is something I made, check it out".

  9. Engaged by Anonymous Coward · · Score: 1

    They author should be commended for creating and releasing publicly rather than the whining and complaining found here. As a personal project, it may be improved, abandoned, rewritten, or simply enhances skills that will lead to other contributions.

    1. Re:Engaged by abies · · Score: 1

      All of us have half-finished, useless projects out there, which have potential to be something nice if we spend another 30 man-years of effort and rewrite them few times. Nothing wrong with that. But posting ninja self-promoting submissions to slashdot about them... thats pathetic.

    2. Re:Engaged by jones_supa · · Score: 2

      All of us have half-finished, useless projects out there, which have potential to be something nice if we spend another 30 man-years of effort and rewrite them few times. Nothing wrong with that.

      That is not always good. Finishing your projects properly is a very important skill for an engineer, artist, or anyone really. Half-finished stuff gives a bad impression of your work and makes yourself feel uncomfortable about not completing them.

      Just spec your projects before starting and assess whether you can realistically complete them, and you're good.

    3. Re:Engaged by Anonymous Coward · · Score: 0

      All of us have half-finished, useless projects out there, which have potential to be something nice if we spend another 30 man-years of effort and rewrite them few times. Nothing wrong with that.

      That is not always good. Finishing your projects properly is a very important skill for an engineer, artist, or anyone really. Half-finished stuff gives a bad impression of your work and makes yourself feel uncomfortable about not completing them.

      Any human with a functioning brain has more ideas than they have time to make into finished products. These ideas don't give a bad impression, because we don't push them on others unless/until they are finished (unlike the submitter).

      Just spec your projects before starting and assess whether you can realistically complete them, and you're good.

      Are you a troll, or have you never done anything creative or research based?

  10. Should have named it rock lobster. by boylinux · · Score: 1

    Then we could have had fun with the "It wasn't a rock it was a ...Rock Lobster! comments.

    1. Re:Should have named it rock lobster. by Anonymous Coward · · Score: 0

      They're saving that name for the hardened version.

  11. nothing new by SuperDre · · Score: 2

    great, another one of those wannabe languages.. There are already a lot of other alternatives out there..
    Just use one of the classic languages with the same libraries as this one uses, you'll be glad you did..

    1. Re:nothing new by pmontra · · Score: 1

      Why not? Experimentation is useful and gives many languages that die quickly but also ideas that spread and end up in languages that stick. Just imagine saying use the classic languages at the time of Cobol and Fortran, or at the time of C later on. No C, no Perl, no Python, no Ruby, no Java, no PHP (oh well...), no JavaScript. All of them got ideas from other languages and spread their ideas into newer languages or into contemporary ones (PHP has traits nowadays).

      As for really using Lobster in production, let's wait and see how it compares to its competitors. Chances that it will go anywhere are little as for every other new language.

    2. Re:nothing new by abies · · Score: 1

      It makes sense if language explores new ideas or has groundbreaking implementation. There is no reason to experiment with languages which have both design and implementation sub-par to multiple of existing ones.
      That said, everybody should try writing their own language at least once in lifetime - it is very good experience and you learn a lot about why other languages have certain quirks. It is just that you should not try to sell your 'baby' on slashdot...

    3. Re:nothing new by Anonymous Coward · · Score: 0

      no Python, no Ruby, no Java, no PHP (oh well...), no JavaScript.

      Sounds wonderful. Maybe we could go back to having efficient software rather than bloatware crap churned out by hipsters who rewrite everything in the newest fad langauge.

    4. Re:nothing new by The+Cat · · Score: 1

      Maybe we could go back to having efficient software rather than bloatware crap churned out by hipsters who rewrite everything in the newest fad langauge.

      Wins the mother #%*(&@#% thread. Goodnight and drive safely.

    5. Re:nothing new by Anonymous Coward · · Score: 0

      Wow, that is the MOST insightful thing I have ever read on Slashdot (or the rest of the Intertubes!).

  12. why dont we just use chinese characters? by decora · · Score: 1, Insightful

    look if we are going to have these bizarre punctuation marks everywhere, then why not just start using chinese characters, that actually mean what we are talking about?

    "oh because nobody can read them"

    nobody can read _?@$$$ __ *&* anyways. but at least chinese has some meaning already attached to characters, like

    look at

    it means download

    its literally the cjaracter for "down" followed by a character for a wagon/cart (top view.. two wheels, see?) and a thing next to it. (down transport)

    that makes a hell of a lot more sense than some bizarro perl bullshit and it only takes up two spaces.

    1. Re:why dont we just use chinese characters? by Issarlk · · Score: 2

      Chinise characters in Slashdot, really? When do you think you're living ? 21st century ?

    2. Re:why dont we just use chinese characters? by dintech · · Score: 4, Informative

      Been there, done that. Look specifically at APL in the 60s. Functions were represented by single characters which you needed a special keyboard to type. For example, instead of typing the string floor, instead it was represented by what is now Unicode Character 'LEFT FLOOR' (U+230A) and required a special terminal to reproduce them. This limited where you could input and also display APL code.

      One evolution of APL was the A+ language leading finally to K in the 90s. Having these special character requirements was too much of a pain in APL so all special characters were replaced by tuples of ASCII characters that were already common. In K, 'floor' was now expressed as _: which is no easier to guess the meaning of if you don't know the syntax, but now you need only standard ASCII to represent it.

      'Son of K' was Q which comes full circle replacing _: with the keyword floor. Iverson's argument in developing APL was that the terseness achieved by using notoation (single characters) meant that you could express concepts more conciesely. This in turn meant that complex concepts were easier to visualise. There's a lot to be said for this, but I think Q now provides a much happier medium between the two perspectives.

    3. Re: why dont we just use chinese characters? by Anonymous Coward · · Score: 0

      APL anyone? I am waiting for it to come back. Thanks for to cool info on K and Q.....AgileBill

    4. Re:why dont we just use chinese characters? by afranke · · Score: 1

      You should watch that lightning talk about Perl operators: https://www.youtube.com/watch?v=bZ3LEbiH4Nc

    5. Re:why dont we just use chinese characters? by the_arrow · · Score: 1

      look if we are going to have these bizarre punctuation marks everywhere, then why not just start using chinese characters, that actually mean what we are talking about?

      There are a lot better languages already out there if you want bizarreness.

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
  13. fuck me slashdot cant display unicode by decora · · Score: 4, Insightful

    oh well

    1. Re:fuck me slashdot cant display unicode by Xest · · Score: 3, Informative

      Amusingly this is somewhat the answer to your question - most programming languages will avoid unicode characters because it then runs a greater risk of transmission of code between systems because unfortunately there are still all too many applications, sites and programs that don't properly support unicode which means bugs could arise in source code for no reason other than loading it up, manipulating it, and saving it in the wrong text editor.

      But I agree, it's a sad state of affairs that we can't rely on the existence of unicode even now.

    2. Re:fuck me slashdot cant display unicode by CastrTroy · · Score: 3, Insightful

      This is one of my favourite things about .Net. All strings are unicode (utf-16) by default. You don't have to do any fancy trickery to get the language to interpret your string as UTF, and all the functions (assuming no bugs) work properly for international characters. In most other languages, you have to remember to precede the string with some character to signify that it's unicode, and the strange things start happening when you mix unicode and non-unicode strings, and have the functions don't work properly with unicode strings to begin with. Same thing goes with base-10 decimal numbers. It's a native type. You don't have to import some library and a= b.add(c) every time you want to add a couple numbers (gets really messy with more complex math).

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    3. Re:fuck me slashdot cant display unicode by Inda · · Score: 1

      You must be new here.

      Welcome to the circus.

      --
      This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
    4. Re:fuck me slashdot cant display unicode by HiThere · · Score: 1

      There's an interesting reason, though. Consider building a Trie around Unicode chars. Granted, this may not be a major reason, but UGH! There's a lot of advantages to having a small alphabet. The early languages didn't usually even allow both upper and lower case. Well, memories have expanded, processors have speeded up, etc. But Unicode is still too verbose for many algorithms to work well. And using bytes and utf-8 yields different problems.

      I will grant that there are lots of approaches that don't suffer dramatically from this problem. It's largely historic. But there are still valid reasons.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    5. Re:fuck me slashdot cant display unicode by spitzak · · Score: 2

      Bull. Microsoft's refusal to interpret byte strings as UTF-8 is the problem. The fact that you have to use "wide characters" everywhere is by far one of the biggest impediments to I18N.

      Unicode in bytes with UTF-8 is *TRIVIAL*. Look at the bytes and decode them. Variable length is not a problem, or if it is then you are lying about UTF-16 being so great because it is variable length as well! And if there are errors you can do something *intelligent*, like guess an alternative encoding (thus removing the need to mark either UTF-8 or legacy codes with a marker), and also preserve the error bytes until later so that you can do lossless data handling. Working with UTF-16 because of the lossy error conversion is like having to work with 7-bit data streams again, incredibly painful.

      Intelligently-designed systems (like Plan9 back in the mid 80's!!!) could do All of Unicode using the same api as was used for ASCII and other character sets. None of this wide character shit. And there is zero reason Microsoft's stupid compilers cannot handle UTF-8 quoted constants except their pig headedness.

    6. Re:fuck me slashdot cant display unicode by Pseudonym · · Score: 1

      Consider building a Trie around Unicode chars.

      Done it.

      Any data structure programmer worth their paycheck knows that a trie is an abstract structure which can be realised in many different ways. It is logically a tree of "nodes", where each "node" is a map from a digit (where the key is expressed in some radix) to another node. That map can be implemented in multiple ways. The simplest is an association list (sorted or unsorted), but it could be a simple array, a binary search tree (often realised as a ternary search tree), a hash table (possibly a perfect hash table), a rank/select dictionary, or pretty much anything.

      Real-world tries often vary the mechanism depending on how loaded each node is, have special representations for nodes with only a few keys (e.g. burst tries) and sometimes even vary the radix, or skip whole nodes if there is only one child (e.g. Patricia tries).

      That's not counting all of the trie variants with different tradeoffs.

      So yes, this is completely viable. It requires thought and measurement and profiling, but you've already worked out that the many dictionary implementations floating around that are already written and tested are unsuitable for your needs.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    7. Re:fuck me slashdot cant display unicode by Anonymous Coward · · Score: 0

      You are not correct. "All strings are unicode (utf-16) by default." This is simply not true.

      For a start, if you are using Windows, then strings are natively UCS-2, not UTF-16. The difference is that UTF-16 allows escape sequences to represent characters that can't be represented in two bytes (just as UTF-8 has multi-byte sequences for character that can't be represented in one byte) - a single character may be represented by multiple 2-byte symbols. UCS-2, on the other hand, has every character it can represent as a single 2-byte symbol.

      Note that Linux uses UCS-4, not UCS-2, for wchar_t, so wchar_t is 4 bytes on Linux.

      Unicode does not just mean 2-byte characters, even if your Microsoft manual says that it does. Unicode may be represented as UTF-8 (perhaps the most general), UTF-16 (two forms), UTF-32 (multiple forms), UCS-2, and UCS-4, at least. For all I know, there might be a UCS-3 or UCS-6.

      As for "you have to precede the string to indicate that it's Unicode" - that's not strictly true. Yes, there is a Byte Order Mark (BOM), which may be present, but it's optional (and unnecessary in UTF-8, although it's present surprisingly often).

      Base-10 decimal numbers? Nice tautology - I suppose you write base 16 hexadecimal numbers, too? I would not expect to use decimal for anything but text input/output - I keep my numbers in an appropriate binary representation. Doing an operation such as addition using decimal (text) form is painful (amusingly, there are two separate sets of machine code instructions on an Intel chip for operating on ASCII decimal and BCD numbers, but a real geek probably already knows that!).

    8. Re:fuck me slashdot cant display unicode by dkf · · Score: 1

      Consider building a Trie around Unicode chars.

      Why would you be building a trie? A less-elaborate data structure will usually be faster due to memory access patterns that fit better with what cache predictors cope with.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    9. Re:fuck me slashdot cant display unicode by HiThere · · Score: 1

      OK, I'm not a compiler builder. And a hash table would be better for a symbol table. And I was thinking about a slightly different representational problem, for which a Trie would also not be the correct data structure to use, but which seemed to have the same problem. (It's actually an n-dimensional list structure...though less general than that implies. And I'm probably going to slap a restrictive upper limit on n...at least if I can figure a way to do so that won't choke things up.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    10. Re:fuck me slashdot cant display unicode by Anonymous Coward · · Score: 0

      D has the best Unicode handling of any language, allowing natural processing of utf-8, utf-16, or utf-32 ... it's entirely up to the programmer what tradeoffs to make.

  14. Old timer by Anonymous Coward · · Score: 2, Interesting

    You've been programming for at least 20 years. That means you've started when things weren't buried behind seven layers of abstraction but had to be done by hand. In languages that didn't help you all that much, but didn't get in the way of letting you get things done either. So, like me, you've seen things those young whippersnappers wouldn't believe.

    Anyway, about perl, I've never seen why it got such a bad rap for excessive punctuation. The sigils on variables aren't that weird, even BASIC used them when I grew up. So you can use "weird things" like $_, well, you don't have to, if you don't feel like it.

    I'm make my living by programming and I've used a lot of languages, tools and frameworks. I've been around the block a few times. And let me tell all young'uns that when I program for fun, at home, I do it in perl. Because perl fits my mental model and the syntax is a warm blanket in a cold, cold world.

    1. Re:Old timer by Anonymous Coward · · Score: 1

      You supper is ready, gramps.

    2. Re: Old timer by Anonymous Coward · · Score: 0

      Also a fan of perl.

      It's the only computer language ice ever used that "figures out my intention" based on context.

      It's semi-intelligent.

      Things that would cause runtime errors in other programs just work in perl. The perl runtime figures out what you were trying to do and does it.

    3. Re:Old timer by Anonymous Coward · · Score: 0

      Perl does get such a bad rap. I would much rather have puncuation in front of a variable if I'm reading someone else's code or a predeclaration of a variable if I'm trying to debug someone else's code so I know what the hell type of variable it's supposed to be. I know if I see a $ it's a scalar, @ its an array or % its a hash, but if i see a $ to it could also be a reference so sigh. But it sometimes beat looking at ruby code and seeing a variable delcared, espically an instance wide variable like @storage and trying to figure out where the hell it came from or what exactly it is.

    4. Re:Old timer by Wdomburg · · Score: 1

      How is $storage in perl any less ambiguous? It might be a simple scalar, a scalar reference, an array reference, a hash reference, or an object of indeterminate type. At least in Ruby you know - for certain - that it is a class instance variable.

    5. Re:Old timer by Anonymous Coward · · Score: 0

      That was mean but the condescending jerk deserved it. Every time I hear Perl, I think she wore a Perl necklace. Wow another programming language some blowhard made, yawn. Machine code is the real mans programming language and assembly from there you fools. Next we will have Lobster and its complimentary language called "butter". Go Slash dot liberals!

    6. Re:Old timer by The+Cat · · Score: 2

      Your diaper needs changing, son.

    7. Re:Old timer by alexo · · Score: 1

      You've been programming for at least 20 years. That means you've started when things weren't buried behind seven layers of abstraction

      How many levels of abstraction again?

    8. Re:Old timer by Lumpy · · Score: 1

      "You've been programming for at least 20 years. That means you've started when things weren't buried behind seven layers of abstraction but had to be done by hand. In languages that didn't help you all that much, but didn't get in the way of letting you get things done either. So, like me, you've seen things those young whippersnappers wouldn't believe."

      Those languages still exist, and real programmers learn them and even more powerful stuff that makes you a far better programmer... Like Assembler.

      the "young whipper snappers" had better get off their asses and learn it so they can leverage knowledge that their peers do not have so they can be far more valuable in the workforce.

      Honestly they really should force CS students to program on Arduinos and Pics before they ever touch larger hardware. Forced to deal with slow processor, tiny ram and near zero storage makes better programmers.

      --
      Do not look at laser with remaining good eye.
    9. Re:Old timer by Lumpy · · Score: 1

      No, that's just how they smell now, they never learned how to bathe.

      --
      Do not look at laser with remaining good eye.
    10. Re:Old timer by Applekid · · Score: 1

      Perl is very easy to understand.... if you wrote it.

      --
      More Twoson than Cupertino
    11. Re:Old timer by MrBandersnatch · · Score: 1

      Define "better" please.

      My boss would have defined better as the 10x programmer who got done in 1 month what I'd said would take 10 but left zero documentation, unit tests or comments; and code so brittle that the slightest deviation from spec brouht the entire mess crashing down around our ears. Sure he was 2x as expensive and it took me nearly 12 months to sneak something past the powers that be that reduced my daily support request queue back to what it was prior to him coming and working his magic but goddamit he got 10 months of work done in 1, it was obvious that he was "better".

      In all seriousness though, I find myself looking at a lot of the work I do these days and being aghast at the lack of optimization but with interpreted languages that are only an order of magnitude (wth a good headwind) slower than C and bandwidth that flows like the aftermath of an all-you-can-eat chicken vindaloo from the cheaper side of Rusholme, it just doesnt matter anymore.

    12. Re: Old timer by Anonymous Coward · · Score: 0

      So it's a weakly-typed ambiguous clusterfuck. Like JaveScript. Or PHP. Yep, I can tell that much when I look at Perl code. What a fucking mess.

    13. Re:Old timer by Lumpy · · Score: 1

      One that actually has a clue as to how Logic and computers work. Almost every single CS grad we get nowdays cant even pass the tests for employment like binary math, or solving a logic problem.

      --
      Do not look at laser with remaining good eye.
    14. Re:Old timer by Darinbob · · Score: 1

      The strangeness of perl at times is that the excessive punctuation changes meaning in context. It makes sense once you know the rules, but even then you can run across something very strange and head scratching if you're not actively using it all the time. Ie, there's a lot of overloading. So almost every time I use perl I still am referring to my dog eared O'Reilly quick reference guide and manual, despite having used Perl since 1989.

    15. Re: Old timer by Pseudonym · · Score: 2

      If you think that Perl is anywhere near as bad as PHP, it's clear that you've never tried to write anything serious in at least one of them.

      Of course, you can write PHP in any language.

      BTW, one good thing about Perl is that it's no longer trendy, which means that pretty much anyone using Perl today actually knows what they're doing.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  15. Why? by Yvanhoe · · Score: 2

    Why do you need a new language?

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    1. Re:Why? by Zeromous · · Score: 1

      The same reason my kid does. To start a club you're not a member of.

      --
      ---Up Up Down Down Left Right Left Right B A START
    2. Re:Why? by Anonymous Coward · · Score: 0

      Because programming languages are like digital currencies; any idiot can make one, but it takes a whole bunch of idiots believing in it for it to have any meaning, whereupon the originator and their circle of friends can cash in big because the system favours the "early adopters" by design.
      Come to think of it, religions work the same way...

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

      I think the reason is in your signature :)

  16. Speak for yourself by Anonymous Coward · · Score: 0

    That you don't understand pointers and don't check your boundaries doesn't mean competent programmers have those issues, now does it?

    1. Re:Speak for yourself by Issarlk · · Score: 1

      > That you don't understand pointers and don't check your boundaries doesn't mean *perfect* programmers have those issues, now does it?

      FTFW.

    2. Re:Speak for yourself by Anonymous Coward · · Score: 0

      Maybe nobody does, as problems with pointers tend to pop up once in a while anyway.

  17. s/(like)(.*)(know)/$3$2$1/; by sonamchauhan · · Score: 1

    ... and therein lies our problem.

    1. Re: s/(like)(.*)(know)/$3$2$1/; by Anonymous Coward · · Score: 0

      That's not perl, that's just regex.

      Knowing regex is one of theist powerful tools in a developers toolkit.

      The fact that perl makes it an intrinsic part of the language just helps.

      I like perl for other reasons though.

      I like the context aware nature of the language. Meanings of things change based on how they are used. That is brilliant!! More languages should copy that feature.

  18. Just one question: by fredrated · · Score: 1

    Is it tasty?

  19. patatje by Anonymous Coward · · Score: 0

    from the name alone i just knew this had to be an Aardappel creation!

  20. '\n'.join(L.strip() for L in text.split('\n')) by tepples · · Score: 1

    Python only forces you to indent in the way any sane person would indent anyway. That's not evil.

    It is when you have to send code through a channel that strips whitespace from the start of each line. With languages that use curly brackets or BEGIN/END, you can pass the code through something like GNU indent to restore the sane indentation. With Python, the block structure is just lost. And if you have your Slashdot posting preferences set to "HTML Formatted" rather than "Plain Old Text", Slashdot is one such channel, as <ecode> loses indentation in "HTML Formatted" mode.

  21. Dependency on OpenGL? WTF? by Anonymous Coward · · Score: 1

    Look at the non-C-family languages that are popular among serious game developers. They are all focused on being embeddable in C code without complex dependencies. So you can have the fundamentals in a "real" language and benefit from rapid development and flexibility in the higher level stuff. This makes a lot of sense. People aren't doing it by accident. Only a fool would make their entire code base depend on low level stuff being in some runtime library for a high level language.

    1. Re:Dependency on OpenGL? WTF? by Anonymous Coward · · Score: 0

      You all don't get the point. It's not meant as the next game scripting language. Lua and Angelscript already cover that niche.
      It's not even the language, that's interesting about Lobster.
      It's an environment for game prototyping, which delivers all libraries for you to do it.
      And unlike LÖVE (love2d.org), which aims at 2D games, this ships proper 3D stuff. Hence the MineCraft clone in 66 LOC.

  22. CubeScript by Anonymous Coward · · Score: 0

    Why couldn't CubeScript (from the same author) be more like that.

  23. It's not about the language, it's about... by Anonymous Coward · · Score: 0

    ...the standard libraries, which are designed for game prototyping.
    CloneCraft in 66 LOC, that's somewhat impressive.

  24. Trying to addres some complaints... by Aardappel · · Score: 1

    OP here, let me see if I can address common comments I see here:

    "why another language?" - because I can? I can't wrap my head around the thinking that creating new languages is somehow a problem for our development ecosystem. Noone forces you to use them. And like others have so kindly already mentioned, this one will probably die in obscurity, solving your problem before it even started.

    "what's the point when it's not a major innovation?" - Better mainstream languages is an evolutionary process of designs building on eachother and making small incremental improvements. We will never arrive at the next big thing without tons of experimentation that teaches us what works. And if you want innovation, academia is full of programming language ideas that make Haskell feel like Basic in comparison, but they are very far off being usable. In contrast, Lobster is useful right here, right now, for a popular class of applications (games).

    "significant whitespace, bzzzt" - hey, Python proves not everyone agrees with you. Would you have preferred a hypothetical world where Python and other significant whitespace languages had never existed? Oh, and in Lobster it is actually a compile error if two adjacent lines do not have the same whitespace prefix (sequence of tabs and/or spaces), meaning that it is *impossible* for code to visually look like its doing something different from what it actually does, even if people mix tabs and spaces and have different tab settings. The official Lobster syntax guidelines mandate spaces instead of tabs btw (like Python), but you are free to ignore that.

    "why is this hobby project on the front page of /.?" - shouldn't you be spending your time moderating the firehose, or complaining that the moderation system doesn't work? I submitted it and it was promoted to the front page by others, why should I feel bad about that? :)
    I've been making compilers for.. ooh, 24 years now, and while this project is definitely more of a hobby project than past ones, it has been in the making for 3+ years, and has had quite a little bit more thought behind it than the average result of a college compiler class (I should know, I taught one for years :)

    "isn't an interpreted, dynamically typed language too slow for game development?" - you may have a point there. There are no reasons why it couldn't be a lot faster with some type inference and JIT and/or static compilation.

    "why did you change the OpenGL interface?" just because functions start with gl_ doesn't mean it's meant to be a direct mapping to OpenGL. It uses OpenGL 2 and OpenGL ES 2 under the hood, which require you to write and compile your own shaders and fiddle with matrices and many other things just to get a triangle on screen. Lobster's graphics interface shields you from that and is much more high level.

  25. Slogan by Anonymous Coward · · Score: 0

    "Lobster, the language that requires grown men to wear a bib."

  26. wtf? by Anonymous Coward · · Score: 0

    wy do sum engrs wrt code lk thy hv 2 pay $1 fr evry chr?

    I don't want to have to decode everything people write. Give me a language what doesn't look like it was typoed on a cellphone.

  27. I knew it by Anonymous Coward · · Score: 0

    Wouter van Ortmerssen... he's a GENIUS when it comes to comuter programming languages.

    For those of you who are unfamiliar with him, take a long hard look at AmigaE and be jealous. Be very, VERY jealous.

  28. One more? by the_arrow · · Score: 1

    Yet another language from Wouter van Oortmerssen? When will he ever get enough?

    He's also the guy behind the Cube game and game-engine.

    --
    / The Arrow
    "How lovely you are. So lovely in my straightjacket..." - Nny
  29. Shopping entrance by winuows · · Score: 1

    ( http://www.sport3trade.net/ ) This is a shopping paradise We need your support and trust, you can find many cheap and high stuff,Believe you will love it, WE ACCEPT CREDIT CARD /WESTERN UNION PAYMENT YOU MUST NOT MISS IT!!!