1. Welcome to PHCorner Forums. Take a moment to Sign up and gain unlimited access and extra privileges that guests are not entitled to, such as:

    All that and more! Registration is quick, simple and absolutely free. Join our community today!

The current trends in computer science, IT and software engineering

Discussion in 'Windows Tools & Tips' started by Jeanh, Jul 16, 2015.

  1. The current fads in computer science, IT and software engineering



    Functional Programming.

    This programming paradigm, most famously used in Microsoft Excel, is taking software development by storm.

    [​IMG]
    (source: Please or Register to view links)

    The basic ideas behind Functional Programming are that:
    1. Data should be immutable. Instead of manipulating data, you should make a new copy of it.
    2. Programs should be stateless. No function should care about what has happened in the past.
    Why should you bother with Functional Programming?

    [​IMG]
    (source: Please or Register to view links)

    In all seriousness, here are some of the reasons our open source project uses Functional Programming.
    • It allows for parallelism and concurrency on a massive scale. This is why some of the highest performance languages are functional.
    • By using abstractions to handle tasks like iteration, you reduce the amount of code you have to maintain, and thus the number of things that can go wrong.
    • You shift the work from a bunch of small specific functions to a few higher order functions (functions that take other functions as inputs or output a function). This allows you to focus more on results than specific steps.
    • With no stored state and only derived data, you can scale horizontally (with more cheap computers) rather than up (with more powerful computers). This makes it easier to spin up servers when traffic rises and power them down when traffic falls.
    • JavaScript, the most popular language (and the one we teach), is well suited to the Functional Programming paradigm.

    Reactive Programming
    Because functional programming is passé - Fowler hasn't bothered teaching that Cousera in a year.
    1. Reactive programming is an emerging discipline which combines concurrency and event-based and asynchronous systems. It is essential for writing any kind of web-service or distributed system and is also at the core of many high-performance concurrent systems.

    DevOps
    Because it got pretty hard to deploy code for about five years there.

    Platform as a Service (PaaS)
    Because Heroku.

    MEAN Stack
    Why say Mongo, Node.js, and Angular when I can use an acronym? I know there's Express.js too, but I think they only included it so they didn't have to call this the MAN stack.

    Laravel
    Makes writing PHP code look (nearly) palatable.

    Scala
    Because you love the JVM but after forever, Java has lost the new language smell (or because functional).

    Material Design
    Responsive wireframes (a bit of a simplification)... It's design, but it's well into the realm of coder's lives.


    • Algorithms in general. Great, fun to make and think about, necessary, etc. but the collective circlejerk around them has become kind of ridiculous. They serve a good purpose, but in practice not much time or effort is actually spent writing amazing algorithms. Way overblown at the moment because coding interviews are using them so much lately after trying things like fermi problems and asking obscure language specific questions.
    • JavaScript. Again, not knocking JS. I've been using it for over a decade now and it gets the job done very quickly, and it's neat to see some of the backend things you can do with it so easily now, but the obsession with it at the moment is running full pace and is pretty overblown. Reminds me of the massive Ruby bubble/hype of years past that finally seems to be settling down to reasonable levels.
    • Macs for development. They're good machines, they're UNIX based, etc. but they're not that good, especially for the money (still about 3x a PC for the same specs) I've noticed a clear shift towards Macs in the past few years in IT circles that definitely wasn't there before.
    • Youth in general. It's hard for me to bite the hand that feeds me on this one because I'm sure the fact that I got started very young has helped and will continue to help me, but it's overrated. Honestly I think given the right approach someone at 30 could learn a language just as quickly as someone at 18. And they have generally built up a level of organizational skills and having their shit together that can help significantly in a way that a kid still trying to figure his life out can't really compete with. I could go on about this point for quite a while, but TL;DR youth is hugely overvalued and overrated in tech at the moment.
     
    lablab and iLoonie like this.
  2. derx

    derx El Vampiro Staff Member Moderator

    Wrong section. Thread moved!
     
  3. welcome bossing(y)
     
Tags / Keywords: