Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

[Question] What is your tech stack from 10 years ago versus now?

Options
  • 27-09-2017 12:32pm
    #1
    Registered Users Posts: 25


    This is kind of a follow-up on the favourite tech stack thread (http://www.boards.ie/vbulletin/showthread.php?t=2057782001).

    For example, if you were learning JavaScript 10 years ago, did you already feel like JavaScript will still be around til now? Or, say you were writing Fortran and at some point you thought that Fortran would become less popular - how did you experience that point and how did you decide to shift to another language?

    Would be great to hear ye's trajectories in terms of how your languages evolved over the last decade or two.


Comments

  • Registered Users Posts: 11,262 ✭✭✭✭jester77


    hmm, not sure of exact dates, but I was working with Java, JSP, XML/XSLT, EJBs, Struts, Oracle weblogic, Tomcat, Ant, MySQL, JBuilder and CVS :eek: around that time. Everything was overly engineered and we were starting out around then with agile development using XP.

    Actually most of that is even older than 10 years, probably closer to 15

    Eventually moved into android dev, and for the last 2/3 years developing mainly with kotlin


  • Registered Users Posts: 768 ✭✭✭14ned


    kenjicpl wrote: »
    For example, if you were learning JavaScript 10 years ago, did you already feel like JavaScript will still be around til now? Or, say you were writing Fortran and at some point you thought that Fortran would become less popular - how did you experience that point and how did you decide to shift to another language?

    Twenty years ago I was mostly writing in C, having just moved into it coming out of mostly all-assembler programming. I was recommended to use this new scripting language called "Python" by a friend, and indeed I found it more than useful and have been using it ever since.

    Ten years ago I was mostly writing in C++, having five years beforehand moved into it out of mostly C programming.

    Five years ago I had written a fair few medium sized .NET microservice and COM applications, partially using IronPython, but also C# and good ol VB.

    In recent years it's been back to fixed latency C++, assembler and Python for the non-fixed latency mostly. Dabbled a little in Rust, didn't think much of it. It's no slam dunk obvious game changer like Python clearly was from the beginning.

    I'm still waiting for the next slam dunk obvious new game changer technology to turn up. I can't say I've been much impressed with all the recent "innovation". A lot of it is "me too" innovation, incremental at best, mostly fashion du jour in truth.

    Niall


  • Registered Users Posts: 6,150 ✭✭✭Talisman


    25+ years ago I was comfortable with Assembler, C, Pascal and FoxPro. In the early 1990s, I had C++ forced upon me and I cursed the name Bjarne Stroustrup! I strongly believed OOD was a fad that the world would grow out of - letting go of C and Assembler was really hard for me. A few years later the Gang of Four Design Patterns book was published and I saw that the OOD bloat was a necessary evil.

    For a time C++, Delphi and Java were my tools. During the .COM bubble I transitioned to web technologies ASP (VBScript), .NET, JSP, Perl, PHP, Python and dabbled in frontend JavaScript. In 2009/10 I worked on a big project that hit the C10K problem, after that Apache and the Java platform were dead to me. I learned of NodeJS and decided to take JavaScript seriously - the pyramid of doom didn't freak me out and the mental gymnastics of writing asynchronous code was fun. I did the MEAN stack thing and in the process got ****ed by the limitations of MongoDB and AngularJS - not so fun. RxJS was exciting and React was a massive performance improvement on AngularJS. In the last year or so, using JS began to grate as I was being asked to fix up other people's mess and choice of libraries.

    Last December I realised that functional programming would resolve almost all of the issues I was encountering and I decided to start using it in my code. Initially it felt like performing a lobotomy on myself, I had to unlearn a lot of useful stuff e.g. loops, variables, mutable data. Functional programming only warranted a single lecture when I went to college and now it's a big thing. Rich Hickey’s Simple Made Easy talk helped me realise how awesome immutable data is. Recently I began using Clojure and ClojureScript - it seems like programming from the future and the learning curve has been massive but enjoyable.


  • Registered Users Posts: 768 ✭✭✭14ned


    Talisman wrote: »
    Last December I realised that functional programming would resolve almost all of the issues I was encountering and I decided to start using it in my code. Initially it felt like performing a lobotomy on myself, I had to unlearn a lot of useful stuff e.g. loops, variables, mutable data. Functional programming only warranted a single lecture when I went to college and now it's a big thing.

    Interesting history. Particularly how you ended up in web dev given your beginning.

    I'm almost certain that functional programming is and always will be dead on arrival. Functional style programming on the other hand is indeed a very value tool to have in the toolbox. It's especially useful for high concurrency situations because you don't need to lock around access to immutable data.

    You might be appalled to learn that C++ now also does functional style programming. In fact, if you're metaprogramming i.e. programming the compiler with high order constructs, it's all 100% pure functional. Various far too clever people have leveraged that to make C++ implement functional style programming e.g. http://www.boost.org/doc/libs/1_61_0/libs/hana/doc/html/index.html much of which is heading into the next C++ standard. So for example with your compiler set to C++ 20 you can do:
    #include <iostream>
    #include <range/v3/all.hpp>
    #include <range/v3/experimental/utility/generator.hpp>
     
    using namespace ranges;
     
    // Define a range of all the unsigned shorts:
    experimental::generator<unsigned short> ushorts()
    {
      unsigned short u = 0;
      do { co_yield u; } while (++u);
    }
     
    int main()
    {
      // Filter all the even unsigned shorts:
      auto evens = ushorts()
                 | view::filter([](auto i) {
                       return (i % 2) == 0; });
     
      // Write the evens to cout:
      copy( evens, ostream_iterator<>(std::cout, "\n") );
    }
    

    One can work with infinite ranges because these are lazily generated. Also, if the compiler can execute the code in its entirety at compile time, it will, and entirely eliminate runtime code altogether.

    I appreciate most languages have had generators and lazy evaluated functional constructs for a long time now, however these new additions have fixed latency guarantees. That makes it very interesting indeed.

    Niall


  • Registered Users Posts: 2,149 ✭✭✭dazberry


    20 years ago I was a few years into my career, having done mostly assembly language, C and Turbo Pascal, the latter managed to get me into a job as a Delphi programmer in a small software vertical. Very RAD component dropping stuff, but we thought we were great at the time. I was in my mid-20s, so it all seemed very exciting at the time :)

    10 years ago I was working on LOB client/server applications still in Delphi in a financial. Delphi was beyond its sell by date even at that stage - we were using a 2001 version but even newer versions lacked a number of language features* we would be used to today. Having said that I'd moved away from the typical RAD approach, and was using more modern techniques that I stole from the Java world (although I never worked in Java) with RAD mostly consigned to screen design, the marriage of both was super productive. But the financial was not a good place for sustainable development - political infighting made impossible deadlines, and every innovation** seemed to be sucked into seemingly shorter deadlines. I was a few years in there at that point - didn't want to be there and running on empty - the following year I burnt out.

    In the meantime I was eating and drinking C# dotNet in my spare time, that's where I wanted to go - I'd given up evangelising Delphi, I'd loved it but there was just nowhere to go - and I'd sort of fallen in love with C#. But it took a few more years to get the opportunity to move on.

    5 years ago I was 18 months into my C# dotNet career - but had taken a stumble - I was in my second C# contract and was 6 months into a dysfunctional post-startup vertical - "come work with us and our leading edge C#" they said, mistaking C# for VB.Net and leading edge for .net 1.1 :( Having said that, we had an absolute ball there - I only stayed for a 18 months, trying to balance out job hopping vs working in crap***

    Today - I'm on a break for a little while, I'm a bit tired of it all. Messing with personal projects, .net core, C# and Python. Seriously need to spend time getting into JS frameworks.

    * Generics weren't implemented until the 2009 version - and people howled that it was pretty much broken in that release. RTTI (run-time type information aka reflection) was in Delphi from early on - but it was only in the 2010 release it became on par with the .Net implementation, with the likes of attributes.

    ** I was trying to introduce unit testing, and supplied a suite of tests with a particular complicated piece of work I was delivering - I was told "we don't have time for that sort of thing here", the person who said this to me has gone on by all accounts to have a fabulous career - the mind boggles.

    *** A lot of the stuff written there was very rigidly object orientated, so much so that it became horribly inflexible to work with. Apparently there were shouting matches about the right way to do things back at that time, but I think I came to appreciate how good the Delphi stuff was we were doing around the same time - greener grass and all that...


  • Advertisement
  • Registered Users Posts: 6,252 ✭✭✭Buford T Justice


    Talisman wrote: »
    25+ years ago I was comfortable with Assembler, C, Pascal and FoxPro. In the early 1990s, I had C++ forced upon me and I cursed the name Bjarne Stroustrup! I strongly believed OOD was a fad that the world would grow out of - letting go of C and Assembler was really hard for me. A few years later the Gang of Four Design Patterns book was published and I saw that the OOD bloat was a necessary evil.

    For a time C++, Delphi and Java were my tools. During the .COM bubble I transitioned to web technologies ASP (VBScript), .NET, JSP, Perl, PHP, Python and dabbled in frontend JavaScript. In 2009/10 I worked on a big project that hit the C10K problem, after that Apache and the Java platform were dead to me. I learned of NodeJS and decided to take JavaScript seriously - the pyramid of doom didn't freak me out and the mental gymnastics of writing asynchronous code was fun. I did the MEAN stack thing and in the process got ****ed by the limitations of MongoDB and AngularJS - not so fun. RxJS was exciting and React was a massive performance improvement on AngularJS. In the last year or so, using JS began to grate as I was being asked to fix up other people's mess and choice of libraries.

    Last December I realised that functional programming would resolve almost all of the issues I was encountering and I decided to start using it in my code. Initially it felt like performing a lobotomy on myself, I had to unlearn a lot of useful stuff e.g. loops, variables, mutable data. Functional programming only warranted a single lecture when I went to college and now it's a big thing. Rich Hickey’s Simple Made Easy talk helped me realise how awesome immutable data is. Recently I began using Clojure and ClojureScript - it seems like programming from the future and the learning curve has been massive but enjoyable.

    What limitations did you find with Angularjs and Mongo?


  • Registered Users Posts: 768 ✭✭✭14ned


    What limitations did you find with Angularjs and Mongo?

    I can't speak as to Angular (no experience), but Mongo suffers from poorly thought through design and historically, execution.

    A lot of use of NoSQL comes from the perception that SQL databases are too slow. And for simple key-value stores, maybe with transactional multi-key updates, they are probably right - but then go use LevelDB or RocksDB, not MongoDB. They are a far better fit, and perform very well so long as you don't try concurrent updates etc (if you do, then just shard them).

    Mongo sort of sits in between key-value NoSQL stores and SQL stores, and it's a bad place to be. Not really good at any one thing. SQL stores have also upped their game in recent years, a well designed and tuned SQL store is quite hard to beat.

    I say all this wearing my "storage guy" hat, and it's all hand sweeping generalisations. There are of course some use cases Mongo is a perfect fit for. But it's much less than most think, and many of the early adopters of Mongo have ended up dropping it for something else, sometimes a refactored SQL store.

    Niall


  • Registered Users Posts: 32 protosByte


    I started about 20 years ago out of college writing graphical applications in C on a big AIX Silicon Graphics workstation. It arrived in the office on a pallet - I was really impressed !
    Moved onto writing test harnesses for a distributed telecoms IP application in C++, python and CORBA, and after that moved to a GIS startup where I was writing full stack mapping web applications. ColdFusion and postgreSQL on the backend and javascript using SVG on the frontend. This was before SVG was supported by browsers (IE6 only. This was before Firefox / Chrome). We had to rely on customers downloading an SVG plugin from Adobe.
    Moved to pure frontend after that. Frameworks including Prototype, Mootools and Backbone in that order. Now 95% of my time is non-coding, but the stack where I'm working is moving to React and ES6. Backend is Java and Scala.


  • Registered Users Posts: 6,150 ✭✭✭Talisman


    14ned wrote: »
    Interesting history. Particularly how you ended up in web dev given your beginning.
    An opportunity arose to have a simpler life and more money in my pocket. I had just completed a 14 month death march and couldn't face the prospect of being thrown into another one. I bumped into a former colleague who took immense enjoyment in telling me how was enjoying the simple life - creating ASP (VBscript) to query a database and picking up a ridiculous pay packet. After a whistle stop interview process I started my new job two weeks later. Within six months I had doubled the salary of my former job.


  • Registered Users Posts: 768 ✭✭✭14ned


    Talisman wrote: »
    An opportunity arose to have a simpler life and more money in my pocket. I had just completed a 14 month death march and couldn't face the prospect of being thrown into another one. I bumped into a former colleague who took immense enjoyment in telling me how was enjoying the simple life - creating ASP (VBscript) to query a database and picking up a ridiculous pay packet. After a whistle stop interview process I started my new job two weeks later. Within six months I had doubled the salary of my former job.

    I'm glad it ended up working out for you. Me personally, lots of web dev has come along throughout the years, but I always figured it would be highly amenable to offshoring, so I said no. I've been proven wrong on that - so far - but it wasn't and still isn't obvious to me that it's a safe long term bet.

    I also said no to getting into mobile app development back when that was the craze, and that was definitely the right move. Sure, I know some people who retired permanently from an app of theirs which went viral. But they're rare compared to the majority outcome, and so far - assuming I can find a new contract somewhere in Ireland this year - ever deeper specialisation has kept me employed. Worst comes to worst, we emigrate again.

    Niall


  • Advertisement
  • Registered Users Posts: 25 kenjicpl


    Didn't know C++ also does functional today. (Also, congrats to the new jobs!)


Advertisement