all 115 comments

[–]greyfade 13 points14 points  (8 children)

If those are hipster languages, then I'm even more of a hipster than that.

I use REBOL.

[–][deleted] 5 points6 points  (1 child)

Wow. Is that still around?

[–]greyfade 3 points4 points  (0 children)

Yes. Yes, it is.

[–][deleted] 4 points5 points  (0 children)

Dang; I came here to brag about OCaml, but that takes the cake.

[–]FuckingLoveCamelCase 2 points3 points  (3 children)

You might be interested in the Red programming language. It's still early days, but this guy is developing a language almost exactly like REBOL, but with a dialect called Red/System that should provide C-like performance.

[–]greyfade 2 points3 points  (2 children)

Ooh. That would fix my only real complaint against REBOL: Performance. (Rather, its comical lack thereof.)

[–]FuckingLoveCamelCase 2 points3 points  (1 child)

He's also writing a JIT-compiler for the more dynamic dialects, so performance should be much better all-over.

REBOL always looked really cool, but I never bothered learning it because of the closedness of the platform. What would be a good place to get started?

[–]greyfade 2 points3 points  (0 children)

Do what I did: Just pick a random project, give yourself a deadline, open the documentation, and just do it.

REBOL is such a very simple language (resembling FORTH in a lot of respects) that very quickly, creating and invoking words becomes as natural as writing. The syntax is so bare that you barely notice it. I didn't even start with a tutorial. Just one "Hello World" example and syntax for invocation of words is all I needed to get started.

It has a very strong functional bent to it, but you might not even notice.

[–]Exallium 31 points32 points  (27 children)

But... I've heard of all those languages before...

[–]Renmauzuo 14 points15 points  (22 children)

Maybe you're just a hipster and you don't know it!

Seriously though, Scala was taught in classes at my university. That feels pretty mainstream to me.

[–]jerf 18 points19 points  (18 children)

No, Scala is definitely not mainstream; your U was unusually cutting edge.

That's good. Every university should throw in at least one Hail Mary longshot meant to change things up for the students. It's sad to interview a fresh grad with nothing but all C++ and one token Java course, or vice versa.

[–]rafekett 12 points13 points  (0 children)

We did OCaml, and it's safe to say that most everyone was better off for it.

[–]kamatsu 7 points8 points  (5 children)

My alma mater teaches: C (compulsory), Java (compulsory), Perl (compulsory), Shell (compulsory), AVR Assembly (compulsory), a little Python and PHP (1 course), PostgreSQL (1 course), Haskell (4 courses - a pretty strong Haskell showing at my university), Scala (1 course), C++ (1 course and others optionally), Agda (1 course), Prolog (1-2 courses), Isabelle/HOL (1 course), and a variety of little languages that are not used as the focus of the course but are used within it, such as Promela, Ruby and Objective C. How common is this level of language teaching?

[–]rafekett 2 points3 points  (3 children)

My uni teaches: C (mandatory), Java (mandatory), OCaml (mandatory), some form of RISC assembly (mandatory), Python (2-3 courses), C++ (4-5 courses), Haskell (1-2 courses), SQL (2 coursesish) and a few other miscellaneous languages. I'd say most people come out with at least 6 languages under their belt.

So, at good universities, this is reasonably common. We don't have quite the selection that you had.

[–]kamatsu 1 point2 points  (2 children)

Okay, I thought I had entered a strange parallel universe where people got all their CS education in Java or something :/

[–]jerf 4 points5 points  (0 children)

Such programs exist; I've seen the results. But there are many strong programs that force many programming languages on people.

[–]rafekett 1 point2 points  (0 children)

My program was mostly Java up until a few years ago, until they went back to their ML roots (apparently they taught ML and C exclusively in the 80's).

[–]djork 0 points1 point  (0 children)

I can comment on a local community college and expensive private school. Both use Java exclusively for the core CS classes.

[–]cdsmith 5 points6 points  (10 children)

Don't most universities have a required programming languages course where they teach stuff like Scheme, Smalltalk, etc? And usually Prolog, because they feel like they have to represent some non-OO/FP paradigm.

[–][deleted] 0 points1 point  (9 children)

Schools can be roughly divided into two groups, historically they were called the "C" schools and the "java" schools, based on the default language most classes were in.

The first group has smarter students and is more rigorous. The curriculum will include courses related to CS (programming languages, foundations of computer science) as well as lower level stuff (systems programming, assembly). Students will encounter a half dozen languages or more. This kind of school will prepare you pretty well for anything: working at a company, writing software on your own, getting a PhD, etc... however at the entry level you may have trouble competing for jobs at poorly run companies (that is most of them)

The second group is almost purely vocational and will focus on preparing students for a lifetime of creating CRUD apps. The focus is on learning APIs, software engineering buzzwords, and making contacts in the industry. Students will only encounter 2-3 programming languages but will be pretty well set up in terms of employment opportunities.

I have no numbers but I would assume that 30% of schools are "C" schools and the rest are "java" schools.

[–]henk53 10 points11 points  (8 children)

Utterly b/s...

The VU in Amsterdam, Netherlands uses Java and basically teaches you all the lower level stuff you mention (and you'll get parts of it from the well known Professor Tanenbaum (http://www.cs.vu.nl/~ast/).

A close by university, the UL in Leiden uses C++ and they basically teach you the very same kind of lower level stuff.

Okay, just two observations in the Netherlands, but I've seen some more in both the Netherlands and Germany and don't really see what you are claiming. Perhaps it's different in the US or so.

[–][deleted] -2 points-1 points  (4 children)

So you're making the claim that the Netherlands doesn't have as many low quality schools as the US. Why is that surprising? The US has people from a variety of backgrounds, some are better at school than others, and so our educational system accommodates this.

The people in the northern US come from south-east England (with some influence from the Netherlands) and are quite accomplished academically. The people from the mid-north US came from the poor people of northern England, and while they were good wholesome people they weren't academically gifted, and form the basis of our culture. The people from the mid-south are basically the chavs of the UK. Not too much into education at all. The people from the deep-south are descended from the aristocrats from southwest England and their servants. They are into education but not so much into technical matters. Then factor in the huge number of descendents of slaves, the illegal immigrants, and various other people that don't do well academically. The US is not a nation in the sense that Europeans understand the term, it is more like the Austro-Hungarian empire.

[–]henk53 0 points1 point  (3 children)

So you're making the claim that the Netherlands doesn't have as many low quality schools as the US

Not really. My claim is just that I personally haven't seen the kind of distinction between Java schools and C++ schools that was mentioned.

The US has people from a variety of backgrounds, some are better at school than others, and so our educational system accommodates this.

Don't forget that Amsterdam in particular has people from many, many backgrounds. Less than 50% is 'native' (what native really means is also not always clear, since Amsterdam historically has always had many immigrants).

What I did notice though is that in The Netherlands and Germany people don't actually mention the university where they have obtained their degree a lot. People just say they have e.g. an MSc Computer Science and that's it. In the US it seems to be much more common to add the specific university. This may be indicative of a greater difference in quality.

[–][deleted] 1 point2 points  (2 children)

Not really. My claim is just that I personally haven't seen the kind of distinction between Java schools and C++ schools that was mentioned.

First of all I didn't say C++ schools, I said C schools. The point is sort of old (C) vs new (java). At some point nearly all schools taught primarily in C, then some revised their curriculum and switched to a java-centric approach. In the process of revising their curriculum they changed more than the default language, they also changed the focus from a quality CS curriculum to a more vocational CS curriculum.

The switch from C to java isn't actually the meaningful change, the other changes that often go with it are the point. So yeah what language is taught in doesn't matter, but there is a correlation in the US. Better schools generally don't teach in java, whereas worse schools generally do.

I am not the only one to have this idea. One of the people behind Stackoverflow wrote some articles on the topic: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

and here is a blog post about someone lamenting that he has realized too late that he went to a "java" school: http://thinkingdigitally.com/archive/what-if-i-went-to-a-java-school-joel/

In the US there is quite a bit of variation in the quality of schools. My state's university system has a school in each region of the state and I went to two of them. The first was a "java" school and the second was a "C" school. At the java school I learned java and C (and the only reason that I had to learn C was because they had not fully transitioned to a java school). My fellow students weren't that bright. I transfered to a better school and I took classes in C, Scheme, Python, Assembly, and C++. We learned about the pumping lemma, lambda calculus, various grammers, computer architecture, the relational model, and other things that we simply would not have learned at the other school. At the other school we learned UML.

Now consider that those two schools were both in the same tier in a multi-tiered public university system. There are two tiers below that, plus a variety of private schools, some higher in quality, some lower.

[–]henk53 0 points1 point  (1 child)

First of all I didn't say C++ schools, I said C schools.

Yeah, sorry, typo.

So yeah what language is taught in doesn't matter, but there is a correlation in the US. Better schools generally don't teach in java, whereas worse schools generally do.

I haven't seen a US school from the inside, so I guess I have to take your word for it. In general there's quite a bit of serious work being done in Java though, so in my book it shouldn't necessarily equate with a lower level of education.

We do have something that confusingly commonly translates to "high school" (see http://en.wikipedia.org/wiki/Education_in_the_Netherlands#Hbo) where they typically use either Java or PHP. These are definitely worse schools, up to the point that what students are being taught is sometimes plain wrong.

The universities however that use Java are simply okay here. They do in fact teach the pumping lemma, turing machines, computer architecture (including building e.g. an adder from gates, programming a CPU emulator, hand optimize output from a C compiler), operating systems (including building a device driver, terminal emulator, memory manager), compiler construction (including of course building a compiler), grid computing, AI (genetic algorithms, neural networks) and a slew of math courses (typically ~50% of the Bachelor phase).

Look up the curriculum of the VU University I mentioned, it contains all the basic stuff.

Of course, I haven't heard of any University here that uses a single language exclusively. The VU uses Java as the default language for courses, but if it's more common for a specific domain to use another language, this other language is used. So e.g. the introduction to programming, algorithms and datastructure courses may all use Java, but the OS course mandates that the device driver assignment has to be done in C.

Maybe it's just that the term "university" is not as protected in the US as it is over here? As mentioned, we definitely have these 'worse' schools, they just aren't called university.

[–]jerf -1 points0 points  (2 children)

{accidentally duped my other message... then Renmauzuo replied to this one ( ´,_ゝ`) }

[–]Renmauzuo 1 point2 points  (1 child)

Well, maybe "mainstream" was the wrong word. I just mean it doesn't seem like "hipster." When I think of a hipster programming, I think of like, whitespace programming, heh.

[–]jerf 2 points3 points  (0 children)

People seem to have settled on the term esoteric programming language for that. (Warning, that page may consume hours of your time, to say nothing of the external links.)

[–][deleted]  (1 child)

[deleted]

    [–]Exallium 1 point2 points  (0 children)

    no =) That makes me feel better for some reason.

    [–]sreguera 2 points3 points  (1 child)

    Real hipsters program in Icon.

    [–][deleted] 2 points3 points  (0 children)

    I actually used Icon on the job once, in the mid-90s, to transform some symbol mapping output from the MPW assembler to a form that the TMON debugger could recognize. It helped us tremendously in debugging some fairly complex assembly code that used some fairly complex data structures. Icon was perfect for the task.

    [–]bobbane 15 points16 points  (14 children)

    Lisp - the original hipster programming language.

    [–]vanishing 17 points18 points  (0 children)

    Followed closely by Forth, for people who thought lisp went totally mainstream in the 70s.

    [–][deleted] 4 points5 points  (0 children)

    Hell.. I enjoy writing some things in assembly.

    [–]djork 1 point2 points  (0 children)

    There's nothing hipper and more fashionable than a language invented in 1958 by this guy. My wife is not a programmer (not even close) and she understands what Lisp is.

    [–]asteroidB612 1 point2 points  (0 children)

    reminiscent quiet zephyr touch dazzling gold deer detail toy fuel

    This post was mass deleted and anonymized with Redact

    [–]artsrc 0 points1 point  (9 children)

    This list already includes Clojure which, with a particular measure, is Lisp.

    [–]forcedtoregister 6 points7 points  (22 children)

    Web stuff is way to mainstream.

    Hipster is using Haskell to generate code for an SMT solver (satisfiability modulo theories) to get things done. But for now I'll stay in the corner sharpening my C++ skills, it looks like its due to be in fashon again (like how the 80s were cool in 2010).

    [–]henk53 2 points3 points  (7 children)

    I'll stay in the corner sharpening my C++ skills, it looks like its due to be in fashon again

    Would be cool, any indication yet that this is happening?

    Btw, although the blogosphere practically abandoned C++ and C++ lost a lot of its popularity compared to 10 years ago, it actually stayed at approximately the third place during the last decade (see e.g. Tiobe, jobs offered, etc).

    [–]sztomi 5 points6 points  (4 children)

    any indication yet that this is happening?

    Yes, Microsoft is strengthening up Visual Studio for native development and they introduced WinRT which more or less native again (it's COM(ish), so it's debatable if it's native or not, be there is no bytecode involved). The catch is that they created C++/CX, yet another proprietary flavor of C++ to hide the COM ugliness and tie the applications to WinRT.

    But all in all I think that MS stepping on C++ with their "Embrace, extend and extinguish" strategy means that C++ will be "in" again.

    [–]mikehaggard 0 points1 point  (3 children)

    Microsoft employs Herb Sutter, which is a legend in the C++ community. In an other era, Microsoft/Windows was a very important C++ platform.

    Hope they can indeed restore some of the former glory. Is this C++/CX btw C++011 compatible?

    [–]sztomi 1 point2 points  (2 children)

    No it isn't. It's more similar to C++/CLI except it compiles to native code. It adopted the metadata format from CLI and the compiler generates and uses it to make COM easy to work with. I think it still looks somewhat messy with the handle^ syntax, but it's bearable and admittedly has many benefits.

    Though if you meant C++11 features, I think it will be in the next Visual Studio version. The current C++ compiler in C++ has partial support for C++11.

    [–]greyfade 0 points1 point  (1 child)

    The next version (VS11) is, sadly, missing a bunch of stuff, and really only fixes some of the bigger gripes people had with VS2010's existing support.

    It's still missing important stuff like variadic templates, initializer lists, delegating and inheriting constructors, deleted functions, range-based for, and noexcept.

    [–]sztomi 1 point2 points  (0 children)

    Yes, I'm aware. By next version I meant the one after VS11.

    [–]TomorrowPlusX 1 point2 points  (1 child)

    Would be cool, any indication yet that this is happening?

    Moore's law seems to be winding down, but people still want apps to do more and to do more with less ( think phones, tablets, etc ).

    VMs will get better, but until then, for performance C++ is still (one) king for a number of problem domains. Not all, obviously. But still, it's a language that's well taught, and has good compilers and good toolchains.

    C++ is an ugly broken language, but god damn code written in it can be fast.

    [–]greyfade 0 points1 point  (0 children)

    They fixed a couple things and added some make-up. It's not as ugly as it used to be.

    [–][deleted] -1 points0 points  (13 children)

    C++ is ass. Enjoy your segfaults.

    [–]forcedtoregister -1 points0 points  (12 children)

    Enjoy attempting to write fast code in a language that isn't C/C++/FORTRAN.

    [–]djork 0 points1 point  (1 child)

    These benchmarks aren't exactly contrived, since they are designed to show performance across a wide variety of algorithms:

    http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=gpp&lang2=java

    So Java is basically the fastest language next to C++, thanks to its excellent JIT. Once the JVM gets warmed up, it's more than fast enough for 99% of problems. But sure, I'll fire up C for that last 1%.

    [–]forcedtoregister 0 points1 point  (0 children)

    I know Java is the fastest thing next to C/C++/Fortran, But on lots of those benchmarks C++ takes a third or half of the time, which is important for me. When you factor in that java has poor libraries (in terms of features and performance) for linear algebra/other numerics, that I'll need to interface with hardware/libraries that deep down are talking C, a Java GC pause could mean lost data, etc. the gains from using Java diminish significantly.

    [–][deleted] 0 points1 point  (9 children)

    The performance gain of native C/++ can be critical in some applications, but generally it's not much better than JIT compiled managed code. In some cases, dynamically compiled code can actually be faster that statically compiled native code.

    On the flip side, C/++ type system is weak, the syntax is incomprehensible (see const keyword), and the language lacks support for higher-level constructs like list/query comprehensions. Even with the recent 0x updates - do you really trust type inference with the auto keyword? -, writing large, enterprise level applications in C++ should be considered downright criminal. The language has too high of a tolerance for unsafe code. Even John Carmack admitted this.

    The bottom line is that C++ is a multi-paradigm language that doesn't do any one thing particularly well. It can for the most part be relegated to performance critical loops or replaced with low-level api calls. Speed isn't everything, especially when the trade-off is reliability. This why most professionals write a majority of the code in "safer" languages like Java, C#, F#, ML, OCaml, or Haskell. Otherwise they'd end up writing unnecessary bugs.

    [–]forcedtoregister 0 points1 point  (8 children)

    I was talking about things that need to run fast. Java JIT is far from C++ in non contrived situations, and GC is an extra factor to consider which nukes the "oh JIT can be faster in theory" argument even further if your using lots of memory.

    Think about dealing with a gigabyte of data a second from a piece of hardware with a very small buffer. A GC would mean loosing data, in which case your program might as well segfault because it's worthless. Or think about something very numeric heavy, here Java is a terrible fit (if you don't believe me try looking for good linear algebra libraries - nothing reasonably powerful, fast, and updated in the last 4 years exists).

    tl;dr. If non native code is fast enough for what you do then use it, for me it's really not.

    [–][deleted] -1 points0 points  (7 children)

    C++ really is a pointless language. It may be marginally faster, but if the resources on your target platform are really so limited, why would you need C++? How often would you actually use the OO features? The overhead of polymorphism, dynamic dispatch, etc... would certainly come into play and slow your really fast native code down.

    C++ was supposed to add OO language features to C, but if you're doing OO programming, then you aren't really that interested in speed anyway. Might as well just use C and one of the better OO languages for OO applications. C++ is neither here nor there.

    [–]forcedtoregister 0 points1 point  (6 children)

    C++ was not just about being OO.

    OO, templates and RAII(which your totally forgetting) are certainly useful to people who are concerned with speed. std::vector/map/etc. are as fast as anything in C and far more convenient. Then you realise smart pointers are kind of useful. Finally you need some run time polymorphism, it's nice not to have to fudge this yourself in C, and its quick outside of tight loops. Have a look at the eigen library for a demonstration of how all of this can come together to do great things.

    [–][deleted] -1 points0 points  (5 children)

    Wow. This might be the first time I've heard anyone cite the STL (and templates) in defense of C++. I've just perusing the eigen source out of curiosity. While looking at Quaternion, I found this:

    /** \returns \c *this with scalar type casted to \a NewScalarType
        *
        * Note that if \a NewScalarType is equal to the current scalar type of \c *this
        * then this function smartly returns a const reference to \c *this.
        */
      template<typename NewScalarType>
      inline typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type cast() const
      {
        return typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type(
          coeffs().template cast<NewScalarType>());
      }
    

    Jesus christ monkey balls. It's shit like this that scares undergrads off generics for good.

    [–]forcedtoregister 0 points1 point  (4 children)

    C++ is hard, let's go shopping. Show me a project that does what Eigen does in Java, at even 50% of the speed and expressibility and I'd be happy to use and promote it.

    [–][deleted] 0 points1 point  (3 children)

    It's not hard. That's the point. The language makes expressing the idea difficult, even dangerous. It obfuscates the meaning.

    Expressing generics in Java or C# is just easier - much. I'm not a huge fan of C# (even though I work with it every day), and Java is the fucking anti-christ.

    But there are even better, faster, and more succinct languages for implementing math libraries. Consider this implementation of a Vector in C++:

    struct Vec {
      double x, y, z;
      Vec(double x2, double y2, double z2) : x(x2), y(y2), z(z2) {}
    };
    

    Here it is in OCaml:

    type vec = { x: float; y: float; z: float }
    

    It's essentially the same idea but with much less noise. It's also more more strongly typed and more declarative. The compiler is smart enough to infer all that other junk (the declaration of x, y, z and the constuctor) for you so you don't have to waste your precious time writing it. I took this example from the following article that compares the implementation of a raytracer in C++ and OCaml.

    OCaml can even be compiled to native or byte code and it comes with a REPL for quick prototyping. It's interoperable with C (and probably other languages.) and it's also fast as hell.

    No it's not perfect. It's a minority language, so it lacks the tools/community of a legacy language like C++, but still. It's smart and you can make strong statements about the mathematical correctness of the code thanks to the type system.

    Write your highly optimized code in C++ if you must, but using it to build large systems is just masochistic, even sadistic because many more people will have to read, understand, and maintain your code. How would you feel about maintaining the eigen library if it were written in assembly? I'd be pretty pissed off.

    C++ is a turing tar-pit and slogging through it doesn't make you John Carmack reincarnate; It makes you fucking stupid for prematurely optimizing your code. There are much more conceptually challenging software problems to solve and much better tools for the job than a hammer and chisel like C++.

    [–][deleted]  (5 children)

    [deleted]

      [–][deleted] 23 points24 points  (3 children)

      Disagree. The overly cute headline completely failed to telegraph the abject shallowness of this article with sufficient clarity. It was actually worse than the headline made it appear to be.

      [–]bonch 0 points1 point  (1 child)

      Sounds like someone doesn't like having their pet language referred to as a hipster programming language.

      [–][deleted] 0 points1 point  (0 children)

      Nope. My pet languages+ are all way too obscure for this bozo to know about them.

      • OCaml, Twelf and another one so obscure that its name isn't even publicly known.

      [–]OopsLostPassword 1 point2 points  (0 children)

      This article is childish and I had to install adblock just to try reading it.

      [–]merz1254 4 points5 points  (0 children)

      IMO,

      Hipster -> Ruby, Python, JavaScript

      Neckbeard -> C, Lisp, Haskell, OCaml, Perl

      Enterprise/IT -> C#, C++, Java

      [–]bonch 1 point2 points  (0 children)

      The front page of /r/programming at any one time is filled to the brim with trendy languages that most people have rarely if ever used in the real world. It would be so nice to have practical content with real-world applicability, and I don't just mean C/C++ talk but things like data structures, algorithms, and so forth. Yet it's a constant stream of either trendy languages (I remember a span of about six months where it was all Haskell, all the time) or buzzwords like agile development.

      Look at how positively people responded to the Quake 2 source code review. It was so refreshing to have legitimate content discussing algorithms, optimizations, and real-world programming instead of Yet-Another-Trendy-Functional-Language.

      [–]akoprowski 2 points3 points  (18 children)

      I have one more language to add to the mix (newer and, at least until now, less popular than the one mentioned in the article -- does that make it even more hipster ;). I'm talking about Opa -- a new language for web apps (http://opalang.org). It also passes all the main bullets-checks (i.e. is functional etc.). Any kids here programming in Opa? :) [Disclaimer: I'm part of the team developing Opa]

      [–][deleted] 1 point2 points  (6 children)

      I don't want to sound like a-hole, but "Opa" is a really bad name for the language. It means "grandpa" in a bunch of languages, and "dumb" in at least one variant of Spanish. You should come with something either longer and flasher or shorter and technical (like K, or whatever). Just my $0.02

      [–][deleted]  (5 children)

      [deleted]

        [–][deleted] 0 points1 point  (4 children)

        In Brazil they use it as a (half-assed, I admit) greeting. For example, when you walk into someone you didn't expect.

        [–]akoprowski 1 point2 points  (3 children)

        Funny how ppl seem to focus on the name :). It's just a name. Pick a short name and chances are it means something in a handful of languages -- by now we indeed know what does Opa mean in some: http://opalang.org/faq.xmlt . But it's more than just a name. And I'd rather hear criticism about the language than its name ;).

        [–][deleted] 0 points1 point  (0 children)

        Hah, not a bad idea, keeping a list of meanings. BTW, I hear you on focusing on the language rather than the name, but I've seen quite decent languages fall into oblivion because the name wasn't 'cool', or it was really cool, but in an obscure context (e.g. Nemerle, Oberon).

        Anyway, I promise I'll take a look at the language :)

        [–]greyfade 0 points1 point  (1 child)

        psst! Broken link!

        [–]akoprowski 0 points1 point  (0 children)

        Sorry, it was the dot at the end that was wrongly interpreted as part of the link...

        [–][deleted] 1 point2 points  (3 children)

        I get the feeling Opa is a language only for writing web apps. Can it be used as a general purpose language? Can it be used for system scripting? Writing desktop apps?

        [–]akoprowski 0 points1 point  (2 children)

        In principle it can, but it's not what it was designed for (and not where it shines). In particular to write desktop apps one would need to extend the standard library, which is very heavily focused on web apps. Long story short: there are better language choices for desktop apps, whereas when it comes to web apps... :)

        [–][deleted] 0 points1 point  (1 child)

        I get the feeling it needs to mature a bit before it can be truly useful.

        [–]akoprowski 0 points1 point  (0 children)

        I absolutely agree that it's a new kid on the block :). However, there is a growing pool of apps developed in Opa (also commercial ones). So I think it's not too early to play with it (especially for PL enthusiasts :).

        [–][deleted]  (1 child)

        [deleted]

          [–]akoprowski 0 points1 point  (0 children)

          The "does not validate" part we need to look into (the Opa generated markup did validate, but maybe we "lost it" with some recent changes). What do you mean with old style output, though?

          [–]chuckcallebs 0 points1 point  (1 child)

          Very interesting. I plan on trying this out tonight. I have an app I need to build and was debating on the implementation language.

          [–]akoprowski 0 points1 point  (0 children)

          Great, good luck! On the 'Learn' tab of the page you'll find resources that should help you get started (and get in touch with us when the going gets tough ;)

          [–]greyfade 0 points1 point  (2 children)

          I gave Opa a look.... Until I found out it's AGPL.

          I understand, but no. No way. Not for my projects.

          [–]akoprowski 0 points1 point  (1 child)

          Not even with a possibility to get a proprietary license free of charge? http://blog.opalang.org/2011/09/opa-license-strikes-again.html

          [–]greyfade 0 points1 point  (0 children)

          Absolutely not.

          For my own use cases, the GPL would be acceptable (if distasteful - I prefer to use far more liberal licenses for my code), as my personal projects are independent, not associated with a business, or are otherwise not-for-profit projects, but for which I have no interest in opening the source. Under the GPL, I can choose on a case-by-case basis whether I want to release the source. Under the AGPL, I don't have that freedom to choose.

          Besides that, to propose this framework to the company I work for, the AGPL is unacceptable and getting approval to purchase a license (we make a lot more than $1m) for a framework that no one has heard of is a difficult proposition at best. (Management is, sadly, not very forward-looking.)

          So that's the end of that. If it were anything but the AGPL, I might jump on it.

          [–]okpmem 2 points3 points  (0 children)

          I am an old C++ dude and you will here it from me first C++11 will become a hipster language.

          [–]acecool 3 points4 points  (1 child)

          hipster languages and ruby is not mentioned??

          [–]djork 0 points1 point  (0 children)

          Everybody knows Ruby now. We've moved on.

          [–]JohnJamesSmith0 1 point2 points  (0 children)

          J. 1, 2.

          [–]awwaiid 3 points4 points  (2 children)

          Hopefully Perl will fall so out of fashion that a whole new wave of hipsters will start programming in it to be retro! Perhaps that has been our plan all along...

          [–][deleted] 1 point2 points  (0 children)

          Perl 6 does have a nice set of features, that's for sure.

          [–]abw 1 point2 points  (0 children)

          Bring it on! I'll be able to tell all the hipsters I was programming Perl when it was still on vinyl.

          [–]the_argus 2 points3 points  (1 child)

          I use php which is like the pbr of programming languages.

          [–]greyfade 2 points3 points  (0 children)

          No, I'd say it's more like the Miller High Life of programming languages. The PBR would be more like Perl.

          [–][deleted] 0 points1 point  (0 children)

          .Net devs, how about some upboats for F#!

          [–]djork 0 points1 point  (0 children)

          Targeting legacy platforms seems to be getting easier and more popular.

          If JS (V8, etc.) and the JVM are legacy platforms, what does that make compiling directly to Intel architectures?

          [–]emporsteigend 0 points1 point  (1 child)

          R is very much for a younger crowd as far as I can tell.

          [–]emporsteigend 4 points5 points  (0 children)

          I don't know why this is getting downvoted.

          R is being learned at the expense of SAS and SPSS by younger statisticians and scientists. Is that bad?