[Hidden-tech] SUMMARY: Help me rewrite an old Programming / Web Development Curriculum?

Tim Boudreau niftiness at gmail.com
Mon Sep 11 23:58:40 EDT 2017


>
>
>    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 


Google

More information about the Hidden-discuss mailing list