DEV Community

Discussion on: Evaluating Developer eXperience of a programming language

Collapse
 
stereobooster profile image
stereobooster • Edited

Agree on Go.

About last one - this is a bit hand-wavy metric. I can explain by example.

What you need to run a Ruby project. Ruby itself, Bundler (in Ruby 2.5+ it is included by default), and you are good to go. You may also need C compiler and some libraries, but not necessary. On average 1-2 dependencies, right?

What you need to build a C/C++ project. Based on my experience you will not get away with 1-2 dependencies it is more like 4-5 and all of them should of some exact version. For example, I tried to compile tree-sitter recently, here is Dockerfile

FROM ubuntu:trusty

RUN sudo apt-get -y update\
  && sudo apt-get -y install software-properties-common\
  && sudo add-apt-repository ppa:ubuntu-toolchain-r/test\
  && sudo apt-get -y update\
  && sudo apt-get -y install gcc-5 g++-5 clang\
  && sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20\
  && sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20\
  && sudo update-alternatives --config gcc\
  && sudo update-alternatives --config g++\
  && sudo apt-get -y install python make\
  && sudo apt-get -y install git-core

I need exact version of Ubuntu (not latest), exact version of gcc-5 and g++-5 (not latest). I need python, make, clang, ubuntu-toolchain-r/test. With Docker situation is better. Do you see what I mean?

Collapse
 
rhymes profile image
rhymes

Understood yes! I don't think you can escape that, after all "higher level" languages were created to ease the developer experience among other things :)