I remember when I first started learning Elixir. It was a little over a year and a half ago.
At the time, I was living happily in the world of Obj...
For further actions, you may consider blocking this person and/or reporting abuse
Nice post, but I think it should be called "Many worlds of Software Engineering" or something like that, as not all of these worlds are about programming primarly :) Website idea is definitelly good idea, looking forward ;)
Yeah I agree. When I came up with the title I was planning a list more focused on the differences between OOP, FP, Low Level and stuff like that, but as I wrote it the list expanded to something more broad than I originally anticipated.
I wonder if there's an even broader term, maybe "Many Worlds of Development" that could also cover certain aspects of design (UX, UI, Data Driven, etc.) and stuff like that.
Thank you very much for the article.
Most likely gonna be false, but I think the IOS world could be expended to a more general mobile development world (or if you want to keep IOS as a world, maybe create a galaxy) , with android development (kotlin and java, for what I know), and hybrid technologies (nearing from the modern frontend and SPA on this one, but anyway. ). The hybrid technologies could include nativeScript, react-native and flutter (sorry for those I didn't quote...).
Have a nice day.
Android was definitely one of the "worlds" I knew was missing from this list, I'm just not confident enough with Android development to write anything useful about it. I think I'll add a "Missing Worlds" section to the end to hopefully encourage the community to help me out.
I also really like the idea of organizing the worlds into separate galaxies, could apply to way more than just mobile development, and I like the idea of splitting the "mobile" galaxy into iOS, android, and hybrids (maybe call it "Progressive Web Apps?")
Hard real-time, it's an extension of low level programming, but distinct in that in general it has timing, safety and security requirements religiously applied.
E.g. Aerospace, Automotive, Industrial control systems
I like this.
Would you be willing to write up a quick description of it (nothing to crazy, just a couple sentences) along with a list of five or six key components so I can add it to the list?
The fundamental requirement of hard real time is achieving some specific task, in a specific amount of time.
Sometimes this is a repetitive periodic action. E.g. 1ms.
Or a deadline action, event x has happened, complete action y before time z.
All the timings will have a tight tolerance e.g. 1% or 3% of the target time.
This is typically used in control systems or monitoring systems.
Safety is due to the element being controlled. Usually with legal or industry standards to be applied.
Security due to malicious action on those safety systems.
Architecture! Design patterns, interdependencies, coordination. And I agree with Kral, many worlds of software engineering seems most appropriate.
Love this!
Just added it to the list. Any changes or additions you'd make to the description / key components?
Looks good. I always think architecture has some elements of security. Mainly around understanding what is allowed to interact with what and securing those pieces. However, that's probably a section in itself!
Yeah security is a tricky one, it's mixed in with literally every other world but somehow also a world of it's own! But I think it's important enough to architecture to deserve a spot on the list.
I mean. You need to visit tooling & ops when programming but I'm glad you're refining domain concepts. Wait for years 5 & 10 π
Oh btw control-flow is what makes OOP & FP (more broadly non-linear Dev) possible.
This is great! Iβd love to also think of how these worlds are connected - what links exist between OOP, testing, DevOps, etc. Each of these βworldsβ cannot exist without some or all of the others!
Yes, I agree with this! not only are they interconnected, but some of them change drastically depending on the others (testing techniques vary between FP and OOP, DevOps depends on what you're developing and how you're deploying, etc.)
What a great idea , really appreciate it,
I would suggest that to have a graph representation to describe each one of them