Click here to Skip to main content
15,887,267 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
AnswerRe: I go down rabbit holes on Wiki following internal combustion tech for some reason. Pin
Jacquers28-Oct-23 23:02
Jacquers28-Oct-23 23:02 
QuestionHow did you survive this migration? Pin
Nand3225-Oct-23 1:01
Nand3225-Oct-23 1:01 
AnswerRe: How did you survive this migration? Pin
11917640 Member 25-Oct-23 2:26
11917640 Member 25-Oct-23 2:26 
AnswerRe: How did you survive this migration? Pin
Amarnath S25-Oct-23 2:56
professionalAmarnath S25-Oct-23 2:56 
GeneralRe: How did you survive this migration? Pin
MarkTJohnson25-Oct-23 3:01
professionalMarkTJohnson25-Oct-23 3:01 
AnswerRe: How did you survive this migration? Pin
honey the codewitch25-Oct-23 2:56
mvahoney the codewitch25-Oct-23 2:56 
GeneralRe: How did you survive this migration? Pin
Alister Morton25-Oct-23 23:26
Alister Morton25-Oct-23 23:26 
AnswerRe: How did you survive this migration? Pin
raddevus25-Oct-23 3:18
mvaraddevus25-Oct-23 3:18 
I totally understand your pain.
I came from a similar background -- started learning C++ in 1993 (along with MFC Microsoft Foundation Classes -- which was really an amazing implementation of OOP).
Those were the days that OOP was coming on strong, then Java was invented and everything was an object so really OOP design principles became even more codified.

Then, JavaScript...a dynamic language where it seemed there were no rules and didn't originally even have a way to create a class. Instead you had to create a function that acted like a class.

Slowly, things moved toward functional programming and the syntax can be so austere that you just can't even see what is going on.

Interfaces - In The OOP World
In the OOP world, we had Pure Abstract classes (in C++) and then Interfaces.

We could see that these described "contracts" of functionality: A bunch of functions that the classes would implement.
Remember what an Interface really is: it is the promise that the classes will have functions with specific names that will be implemented in the future. This allows you to have a DYNAMIC function. A function that can be changed in the future.

Dynamic Programming Languages
But, then on the dynamic programmning side (JavaScript) they had functions as first-class objects.
That meant you could pass in a function to a function and override the original functionality that could be run.

Altering Functions Any Time Anywhere
In other words they allowed a dev to write a function that could later be altered easily by anyone.

For example:

JavaScript
var myFunction = (param1, param2) { // do all kinds of stuff}


Then later someone could come along and be like, "Oh, I need that function to do XYZ..."

JavaScript
myFunction = (param1, param2) { // do all the NEW STUFF!!!}


But then this idea got inside people's heads and they were like,

New Devs undisciplined idea:
Anything can be anything!!!! Any function can just do a new thing.


In the C++ world we learned "design" (ideas to create structures which were later extendable, maintained, added to, etc.) but in the JavaScript world these ideas were "backed into" --- people started typing code and then later (maybe) learned some design principles.
They just go the idea that, "Hey, you can do anything, anytime."

For me, I finally learned "Functional" programming when I started learning Kotlin (Android programming) and Swift (iOS) programming. Those languages do a great job of C++-like OOP while maintaining structure and implementing functional concepts.

But also, what you really need is someone who comes from OOP who has seen the changes come in C# (for example) to move toward functional programming. That person will explain the transformation of functions into anonymous / functional programming functions.

As difficult as the book is, I highly recommend the book C# In Depth by Jon Skeet[^].
He teaches the entire way that functional programming moved into C# by showing what C# 1.0 had and moving to each additional version over the years and showing what was added and why.

It is one of the main resources that got me over the hump and helped me see the new sytnax much more clearly.

That's my long 2 cents worth. Roll eyes | :rolleyes:

modified 25-Oct-23 9:31am.

GeneralCCC 25-10-2023 Pin
pkfox24-Oct-23 22:04
professionalpkfox24-Oct-23 22:04 
GeneralRe: CCC 25-10-2023 Pin
OriginalGriff24-Oct-23 22:18
mveOriginalGriff24-Oct-23 22:18 
GeneralRe: CCC 25-10-2023 Pin
DerekT-P24-Oct-23 23:13
professionalDerekT-P24-Oct-23 23:13 
GeneralRe: CCC 25-10-2023 - Winner Pin
pkfox24-Oct-23 23:29
professionalpkfox24-Oct-23 23:29 
GeneralWordle 858 Pin
GKP199224-Oct-23 17:43
professionalGKP199224-Oct-23 17:43 
GeneralRe: Wordle 858 Pin
Shane010324-Oct-23 18:04
Shane010324-Oct-23 18:04 
GeneralRe: Wordle 858 Pin
OriginalGriff24-Oct-23 19:17
mveOriginalGriff24-Oct-23 19:17 
GeneralRe: Wordle 858 Pin
Amarnath S24-Oct-23 20:00
professionalAmarnath S24-Oct-23 20:00 
GeneralRe: Wordle 858 Pin
GuyThiebaut24-Oct-23 20:06
professionalGuyThiebaut24-Oct-23 20:06 
GeneralRe: Wordle 858 Pin
Sander Rossel24-Oct-23 20:27
professionalSander Rossel24-Oct-23 20:27 
GeneralRe: Wordle 858 Pin
ChandraRam24-Oct-23 20:38
ChandraRam24-Oct-23 20:38 
GeneralRe: Wordle 858 - 4 4 me Pin
pkfox24-Oct-23 21:11
professionalpkfox24-Oct-23 21:11 
GeneralRe: Wordle 858 - a rare smug day! Pin
Rich Leyshon24-Oct-23 23:38
Rich Leyshon24-Oct-23 23:38 
GeneralRe: Wordle 858 Pin
Cp-Coder25-Oct-23 0:45
Cp-Coder25-Oct-23 0:45 
NewsHurricane Otis Pin
Steve Raw24-Oct-23 20:15
professionalSteve Raw24-Oct-23 20:15 
GeneralRe: Hurricane Otis Pin
pkfox24-Oct-23 21:14
professionalpkfox24-Oct-23 21:14 
GeneralRe: Hurricane Otis Pin
dandy7225-Oct-23 2:42
dandy7225-Oct-23 2:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.