> > > 1. Java / MySQL / SpringMVC / dotCMS: *NO - JAVA IS TOO HARD: *only > two dotCMS developer jobs on Glassdoor makes me think that won't help them > get jobs... but maybe that doesn't matter. SpringMVC seems to be the most > popular Java framework. > > In terms of jobs, Java is still far and away the one to beat from everything I've seen. But in terms of the amount of theory (what are types, what are objects, etc.) you need, and the amount of boilerplate to do something useful, I think you'd lose kids' attention long before reaching the point of doing anything they'd think is cool. SpringMVC is pretty popular; it's also based on Spring, which was an answer to some of the worst qualities of Java EE, but brings a bunch of its own - everything is JavaBeans configured via XML - meaning everything is mutable, which multiplies the number of potential bugs by orders of magnitude (and unlike Javascript, Java has a final keyword!) > > 1. NodeJS / MySQL / Meteor / [Apostrophe]: *YES - THIS IS WEB CODING > AND MOST JOBS HERE: *nobody is looking for Apostrophe. But since > we're parlaying Javascript into Node.js and everyone wants to hire mobile > app developers, maybe I should push them and leap off the Wordpress > bandwagon, leaving Apostrophe for students who can't hack the coding? > Meteor seems to be the most popular Node.js framework. > > I almost used Meteor for my startup, and did some pretty extensive evaluation of it. I think Express is still the more popular Node framework by far, although it's a bit long in the tooth and enterprisey, and I wouldn't expect much further growth from it. HapiJS (from Walmart Labs) is probably the cleanest, in terms of approaching things the way you should in Node without bringing along disagreeable baggage from Java EE-land. Meteor, though, is a world unto itself - I would separate it out from teaching Node itself. It's powerful, and for real-time communication made transparent, it is very nice - here's a demo app: https://wekan.github.io/ Meteor in particular, uses a client-side library that implements MongoDB's API inside the browser against browser-local storage, and then syncs that back with the server. So some of the code you write runs on both client and server, and you aren't necessarily aware of which is which all the time. It's a very nice garden, but it's a very walled garden - it's an opinionated framework that, IMO, made some good choices about what technologies to put at it's heart, but if you want to use others, you're likely to be out of luck. However, the kind of architecture it does - real-time updates over an open socket, offline operation with caching - is likely to grow in demand. FWIW, I opted against Meteor simply because I wanted more choices in the data back-end department, in particular allowing one server to talk to more than one database in order to shard customers in a more isolated way (yes, MongoDB can be sharded, but life is much simpler and more flexible when you aren't married to a single globe-spanning database) - really a choice between getting something done faster up-front, but making ever trying to migrate off it excruciatingly high-cost, or taking a little more time and having more choices in the future. Functional programming is likely to be the future; while Javascript is an abomination at being an object oriented language, it's a tolerable functional one. If you're preparing these kids to be ready for tomorrow's job market, much as it pains me to say it (I worked on Java tools at Sun for a big chunk of my career), it's probably the best choice. -Tim -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.hidden-tech.net/pipermail/hidden-discuss/attachments/20170911/1228df4a/attachment.html