Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialNicholas Gaerlan
9,501 PointsI concede to JavaScript, but NOT HTML/CSS, not Express, not Rest API. React Native will lead the way!
A little background. I am probably one of the few people that hated JavaScript the first time I saw it, but loved C++. In fact, so far I love Go, Python, C++ and have a dislike of Java. I did NOT like JS either, but... I do like where it's headed. I refuse to code JS pre-ES6 though. Prototypical Objects? Dumb. Actual Classes... FINALLY. Proper variable scope without hoisting? Should've been that way the whole time! Everything should be const or let. I found that if you live in a purely post-2015 world, JS is not that bad. Doesn't help that most of the JS lessons here are pre-2015 though. I'm also of the opinion that it's best to get in the habit of never using a for-loop... for anything. Every time you want to reach for it, grab a map() or reduce() or any number of more functional methods to get the job done. Go lambda not loop. Pure Functions, Strict Typing and Scope = GOOD. I've also come to see that when JavaScript hits a wall, it makes a window. JavaScript sucks at OOP? It changes into OOP. JavaScript sucks at multi-tasking? Boom async! JS is still single-threaded when it comes down to it, so... I'm sure real concurrency is on the horizon since it's already sort of laying the ground work for it. Basically, JS will evolve into whatever over time. Java on the other hand is married to the JVM and that will be its undoing. But I digress...
If you 30 min, then watch this (or skip to the 2nd half) https://www.youtube.com/watch?v=tFFn39lLO-U&ab_channel=ReactRally
This touches on a subject that keeps me from ever wanting to spend time typing html or css or learning sass. It's a cluster#@!#$% to manage. It's also highly inefficient. React Native is very interesting. Makes managing large applications on the web and mobile way easier. Basically it creates the idea that in the future "Full Stack" will mean back-end + web and mobile front-end and design. That's highly marketable. To come in and say I can make your backend (60-70K / yr) your front end (50-60K / yr) and your mobile app (60-70K / yr) and your UX (60-70k / yr). I'm willing to do it for $160K/yr. That's awesome.
Part of why I love React so much is that it embraces ES6+ and says "Oh... you need to have it in pre-2015 because IE doesn't understand ES6 completely??? Just use Babel". It's refreshing because it's like when I was in 5th grade and the teachers were like "you can't use a calculator". I'm thinking "we already know how to add/subtract/multiply/divide" why do we have to keep doing it the slow way? Why can't we focus on the concepts and how we will do things in the real world and use the tools that exist everywhere to get the job done quickly? It's the same with programming. For some reason there's still a mentality that you have to suffer all the things that have been retconnned out. It's like saying "yes we know now that sanitation prevents illness, but first you should live a year without cleaning anything at all". I don't see any programming languages recommending we start in Pascal or Assembly code first before learning Scheme, C, then C++, and so on. React Native has React Native Web so you can literally create the whole thing in RN and then use RNW to pop out a website that is completely optimized. Optimized even better than humanly possible!
Some other things that irk me right now... Express Routing and RESTful API's. Guess what? better alternatives exist. Ppl say that React is just a "view".... nope... there's a router and there's fetch() that's in one of the libraries (flux?). Right now the react stack is thought of as MERN which is the alternative to MEAN, but really... you can probably reduce it to MRN or maybe even BRn (blob & React Native) to get everything done. Cassandra scales better than Mongo so I'd use that since schema's and blob's play nice these days. Then React native will eject out into a properly routed and connected application on web or mobile or whatever else comes about in the future.
I'm not an expert at all, these are just my weakly informed feelings on the subject. watch that vid tho... eye opening.