A ghost? What's the deal? Is every frat on this campus haunted? And if so, why do people keep coming to these parties, cause it's not the snacks.

Xander ,'Dirty Girls'


Buffistechnology 3: "Press Some Buttons, See What Happens."

Got a question about technology? Ask it here. Discussion of hardware, software, TiVos, multi-region DVDs, Windows, Macs, LINUX, hand-helds, iPods, anything tech related. Better than any helpdesk!


Gris - Feb 23, 2019 11:51:50 am PST #25261 of 25496
Hey. New board.

Coder folks: I am a teacher by trade but a casual programmer as a hobby (and I teach computer science starting next year!). I am a pretty good javascript programmer for a casual, but as I don't work in the field I've never really learned any of the many application frameworks out there (Angular, react, etc). I'm interested in learning more about treating javascript as a functional language. Is there a framework/library I could learn through an online course that might push me to learn more about functional javascript?


Gudanov - Feb 23, 2019 12:47:59 pm PST #25262 of 25496
Coding and Sleeping

Javascript is a functional language. So courses in pure Javascript might be useful. Classes are kind of an artificial construct in Javascript at least until ES2015/ES6.


Gudanov - Feb 23, 2019 12:51:02 pm PST #25263 of 25496
Coding and Sleeping

I'm a fan of codecademy courses (which are free, but sort of limited) and pluralsight (which are not free, but more extensive).


Gris - Feb 23, 2019 4:11:54 pm PST #25264 of 25496
Hey. New board.

I think most people use javascript in a semi object-oriented (prototype-based traditionally, class-based since ES6) way, though. I read a lot of cool articles about that. But the move toward more pure lambda-calculus style functional programming seems to be happening.

I think I'm going to take a free course in react/redux as a starting point. If I like the functional enough, maybe I'll then try to learn Elm. I already know Dart pretty well, so I have a strongly-typed OO language that transpiles to JS under my belt, why not add a purely functional one too?


amych - Feb 24, 2019 5:46:05 am PST #25265 of 25496
Now let us crush something soft and watch it fountain blood. That is a girlish thing to want to do, yes?

Gris, I've gotten a lot out of Kyle Simpson's stuff -- start with You Don't Know JS, and then go on to Functional-Light JS. They're originally books, available free online or in physical book form, but he's also done workshops and online courses around his stuff. His whole thing is really getting what the language is doing under the hood (which is, as Gud says, functional, although lots of people build stuff on top of it to make it less so), and the Functional-Light book is about getting deeper into functional programming without getting lost in some of the (for me, at least!) more arcane bits.

I don't know that the currently popular frameworks are where I'd look -- they're all built to crank out production stuff in quick and repeatable ways, which isn't necessarily what you need. That said, as someone who cranks out stuff, I've used both Angular and React for the last several years, and they've gotten really good at what they do. You might enjoy them just as look at how much the way we do JS has changed, and they really are quite powerful. React is much closer to functional ideas, if you really look at the framework itself and don't get lost in the ridiculously large amount of add-on ecosystem that has grown up (like, to the point where it's gotten harder to figure out how to do things because 80% of the results for "how to do x in react" turn out to be "here's a crappy medium post advertising the plug-in I made that solves a problem that only vaguely resembles yours". Angular has come a very long way since the split between old-school AngularJS and Angular 2+, although it's still predominantly OO.

But yeah, start with some actual FP in JS stuff, and then you can pick up any of the frameworks trivially... but my guess is that starting at the framework end will mostly get you "here's the step by step of how to make a to-do list in framework-of-the-week".


Gudanov - Feb 24, 2019 6:03:03 am PST #25266 of 25496
Coding and Sleeping

Of course the best framework is Vue. :)


amych - Feb 24, 2019 6:58:06 am PST #25267 of 25496
Now let us crush something soft and watch it fountain blood. That is a girlish thing to want to do, yes?

That's exactly what my Vue-head friends keep telling me ;) (mostly, though, I didn't speak to that one because I haven't had a chance to use it for real)


Gris - Feb 24, 2019 7:49:28 am PST #25268 of 25496
Hey. New board.

Thanks, amych! And Gud! Super-helpful.

I just have to decide what my real goal is: understand frameworks (frankly a new concept for me in general, and working with Gud's Ruby on Rails site for the new b.org showed me how much I don't know) or explore functional programming in a slightly less arcane way than Lisp/Haskell. I think I want both. So maybe I'll go with your book suggestions, then into React w/ Redux (which apparently is quite functional). I would fiddle with cross-platform mobile apps someday, so learning React gives me an in to React Native, too.


Theodosia - Feb 24, 2019 8:06:59 am PST #25269 of 25496
'we all walk this earth feeling we are frauds. The trick is to be grateful and hope the caper doesn't end any time soon"

I'm working my way through an intense course on Udemy about Angular 7, and it is throwing all kinds of abstruse Typescript at me. Interfaces! Routers! Stores! Way much more than you need for most front end JS. I'm super-pleased with the course for the way it's taught -- there is a course project, but the pattern has been: chapter on Routers with a sample mini-project, then apply the Routers to the course project so that we can firm up our understanding, especially in the bigger context of taking well-known code apart and putting it back together again (which is a lot of what you end up doing with real programming.)

[link]

The teacher has a couple other courses on Typescript that you might consider checking out.


Gudanov - Feb 24, 2019 8:43:47 am PST #25270 of 25496
Coding and Sleeping

I have a real straightforward React w/ Redux example on my github site. [link]

The way it does async actions is different. But it's a nice simple project that actually works unlike a lot of the React w/ Redux seed projects out there. It uses parcel instead of webpack which makes it much easier to configure.

The backend that goes along with it is [link] and that's just a simple Spring Boot application that stores data in Redis. (You don't have to configure anything for Redis for this simple example, just install Redis and bring it up with defaults).

As a side note, there is some seriously functional stuff going in src/puprrs where the functions needed for Saga (an async function handler for Redux) are automatically generated and tossed around.