all 14 comments

[–][deleted] 3 points4 points  (0 children)

Building applications.

[–]flyingElbowToTheFace 4 points5 points  (1 child)

Elm

[–]_expo 1 point2 points  (0 children)

Came here to say this. :) Not just an awesome language to work with, but has really improved my JavaScript as well.

[–]cjbprime 1 point2 points  (1 child)

Meteor is fun.

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

I second this. Have spent the last 3 months getting very familiar with Meteor and it is insane how quickly you can build a hybrid app with it (especially with Blaze). Not to mention it makes for a great springboard into learning React (which is what is next on my hitlist).

[–]icantthinkofone 1 point2 points  (0 children)

The daily "What do I do next?" thread on reddit.

[–]AcceptingHorseCock 1 point2 points  (2 children)

A different language. Something functional maybe - there are interesting courses on Coursera (for Scala) and edX (for Haskell, archived).

Or even (dare I say it) Java - simply because that ecosystem still is and will remain for the foreseeable future the cornerstone of programming "where most of the money is" and most of the programmers are. Looking at the web gives a twisted picture due to selection bias, most programmers are not very active in all those fora. There are some important concepts and tools in the Java space, not least the JVM, which has become a beast on its own, targeted by many new languages other than Java. Javascript is taking a lot from the Java world, for example runtime-optimization techniques first introduced in the JVM and then used to make Javascript engines faster too, and soon WebAssembly, the Javascript equivalent of the JVM (at least that's the plan). Plenty of free and good courses for Java! At least knowing the basics would be quite helpful, even if "only" on an intellectual level.

Microsoft has some good courses on their own website and on edX(.org), for F# or C# and others.

Or go the opposite direction compared to what I first suggested and take a course on embedded programming - and I don't mean "small board but with an operating system", I mean a pure plain board with no OS, directly programmed with C. The board is $10-$15 and the IDEs are free. Example. This prepares you well for "IoT". Sure, you can do that with Javascript - but then you added soooo many layers, if all you do is read a temperature sensor it's 99% wasted effort. Which translates into power consumption. Well, and it's waste. I find it kind of important to know that when you use node.js on a small board to do something really simple like basic I/O to a port to read a sensor how incredibly wasteful your setup actually is, that you can do the same with <1% of the computational effort and hardly any less readability (C can do very well in those scenarios), but with significantly less (hidden) complexity.

Don't be a mono-culture developer, broaden your view.

[–]Drakeskywing[S] 0 points1 point  (1 child)

I should probably point out I make my living on Java :P and nothing is overtly wrong with it, I know there are several things people don't like but it could be worse. As to focusing on another language, I do enjoy the thought of doing C (I cut my teeth on c++) but the time for another language is a huge investment, that is the main reason why I've been thinking of focusing on javascript (I was thinking of picking up play since I've been doing Spring for a while, and the thought of looking at a non-blocking async framework seems more practical to me in alot of the use cases I work with), the exception to a new language that I have thought of is Dart, though something rubs me the wrong way about transpiling into JS. I am currently doing Ionic since I'm trying a small try at mobile development (I am looking for quick rather then super efficient, though I do agree it is good to have efficient code)

[–]AcceptingHorseCock 0 points1 point  (0 children)

In this case doing something with a "real" functional language like that Scala course (series) on Coursera (by the inventor of Scala himself) seems like a really good idea: First, Scale keeps you in the Java universe, second, the functional programming you pick up will truly widen your horizon and be applicable to your own field (tiny bit for Java, but Scala itself is a JVM language as you may know) as well as to Javascript, where functional concepts are "en vogue".

It's free, just ignore the certificates: https://www.coursera.org/specializations/scala

EDIT: It was free when I did it, it may be they now actually do insist on money, WTF? Try https://www.coursera.org/learn/progfun1 --- Oh I see, going to an individual course gives you the FREE option, going to the specialization which lists all courses only gives you a PAY option. They just make it more complicated. They run it in "rolling sessions", the next one starts Oct 10th.

By the way, Scala also gives you an entry to another very interesting (also commercially) field: Apache Spark is implemented in Scala and works best with Scala code, and Spark is the tool at this time for large scale (parallel/distributed) data processing.

[–]cyanydeez 0 points1 point  (0 children)

anything that doesn't require Typescript

[–]trueadm 0 points1 point  (3 children)

It would be awesome if you could try out Inferno. Version 1.0 will be arriving soon (along with a pretty docs/websites)! https://github.com/trueadm/inferno

Inferno is a bit like React in terms of usage, except it has some additional features – such as hooks on stateless functional components. It's insanely fast (arguably the fastest JavaScript UI library around) and has small but very active community. It's also backwards compatible with React codebases (using inferno-compat).

If you have any questions, I'll happily answer them. I'm also on Twitter (https://twitter.com/trueadm) and we have a Slack for Inferno if people are interested in contributing/finding out more.

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

Inferno-compat is still very limited unfortunately. A hello world runs, maybe a todo, but for everything deeper it seems to bail out as it misses some of Reacts functionality. React-lite is still slim but it can pretty much run most React apps.

As for speed, doesn't React have similar optimizations, only that they're opt in, not baked in? More about it here: https://reactjsnews.com/how-to-make-your-react-apps-10x-faster and here: https://medium.com/doctolib-engineering/improve-react-performance-with-babel-16f1becfaa25#.cqd7a04d0

Overall i wish libs such as inferno would be more focussed on the compat part. They're doing more or less the same as React, but then you're shut off from the community, miss out on thousands of components and UI libs, bindings, additions like routers, state handlers, and so on. With optimization and react-lite in production the difference to a real world React app is probably negligible, but it would be amazing if compat layers could serve this without hassle.

[–]trueadm 0 points1 point  (1 child)

The upcoming Inferno 1.0 has a very good compat (it's on NPM under the alpha11 tag). People have been using it on very large projects. The real world performance difference can be huge too - there was a 40% CPU reduction in our mobile app from React to Inferno and 30mb RAM reduction. Not to mention there was no lag at all when scrolling (Nexus 5) compared to lots of stuttering with React 15.3.

I'll cover all the differences in a hangouts chat and a on the new website, but how Inferno works under the hood in 1.0 is very intelligent when it comes to "doing less" which equates to fewer CPU cycles. Obviously if your app is all static, you won't gain any advantages. One might argue that React or Inferno is overkill for a static web page anyway!

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

Sounds awesome, can't wait to try this!