[HN Gopher] C++ Dev Ecosystem 2021
___________________________________________________________________
C++ Dev Ecosystem 2021
Author : luu
Score : 79 points
Date : 2021-07-19 19:47 UTC (3 hours ago)
(HTM) web link (www.jetbrains.com)
(TXT) w3m dump (www.jetbrains.com)
| Shadonototro wrote:
| and yet they don't even support C++20.. not even modules
|
| jetbrains used to be ahead of the competition, they are now
| lagging behind
|
| > Is your current project planning to use any of these C++20
| features in the next 12 months?
|
| modules with 48%
|
| jetbrains you better hurry up
| infamouscow wrote:
| Only MSVC has complete C++20 support. GCC and Clang are not all
| the way there yet.
| scatters wrote:
| MSVC _claims_ complete C++20 support, but their concepts
| implementation is lacking support for requires-expressions.
| This is a pretty huge oversight, imo.
| aninteger wrote:
| Depends on the definition of complete: https://old.reddit.com
| /r/cpp/comments/old0t6/why_does_msvc_b...
| slezyr wrote:
| > and yet they don't even support C++20.. not EVEN MODULES
|
| Can you name a build system that supports them?
| pjmlp wrote:
| MSBuild.
| gravypod wrote:
| Someone made a rule set for bazel: https://github.com/rnburn/
| rules_cc_module/tree/main/example/...
| rightbyte wrote:
| And 46% said they will use concepts. I guess people are
| overestimating a lot or the panel was C++ aficionados.
| bluGill wrote:
| 46% seems way too high. Most C++ programmers just use
| templates without writing them, so concepts are of no use as
| the compiler can figure out from the simple types what is
| wrong with the code and give a good error message. Until you
| have to write generic code concepts don't have much use, and
| that seems to be around 10% of C++ programmers.
|
| Unless you mean as in use them to diagnose an error in your
| use of generic code that you use. Then if you are using a
| high enough C++ you will use them - though probably without
| even knowing it.
| nemetroid wrote:
| Does CMake meaningfully support modules yet? From what I can
| tell, the latest activity on this topic[1] is that it's in an
| experimental state, and requires that you use a bundled version
| of ninja[2]. I wouldn't expect CLion to support modules before
| CMake does.
|
| 1: https://gitlab.kitware.com/cmake/cmake/-/issues/18355
|
| 2: https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5562
| Shadonototro wrote:
| It doesn't matter, they could provide a cmake fork that
| supports modules
|
| I am a customer, i need module support because we want to
| embrace C++20 early, i look at what's available and i see
| Visual Studio supporting modules, the choice is easy to make
|
| Visual Studio has module support since few months already
| jbluepolarbear wrote:
| I don't use raw C++ anymore, but Rider with Unreal is next
| level. I primarily use Rider with C# and it's always up to date
| with the newest features.
| ok2938 wrote:
| Surprised that vim clocks in at only 6%.
| uncomputation wrote:
| I'm wondering the percentage for C developers.
| tored wrote:
| Vi/Vim 9%
|
| https://www.jetbrains.com/lp/devecosystem-2021/c/
| tored wrote:
| _To invite potential respondents to complete the survey, we
| used Twitter ads, Facebook ads, Instagram, Quora, VK, and
| JetBrains' own communication channels. We also posted links
| to some user groups and tech community channels, and we
| asked our respondents to share the link to the survey with
| their peers._
|
| Probably not where you would look for vim & emacs users.
|
| https://www.jetbrains.com/lp/devecosystem-2021/methodology/
| stanislavb wrote:
| The C++ trending projects on LibHunt also give a nice overview of
| the current open-source dev ecosystem
| https://www.libhunt.com/l/cpp/trending (disclosure: I've built
| LibHunt)
| ternaryoperator wrote:
| _One third_ of C++ devs in this survey don 't write unit tests at
| all? That's insane in this day and age.
| p0nce wrote:
| Also half of Javascript and C developers, from the same set of
| Jetbrains studies.
| NavinF wrote:
| Is it really? Most unit tests I've encountered are garbage.
| They only test for bugs that are incredibly unlikely to happen.
|
| Integration tests and fuzz testing is where it's at. Anyone can
| add or improve an integration test within an hour and find
| several bugs that real users would encounter.
| Jtsummers wrote:
| > They only test for bugs that are incredibly unlikely to
| happen.
|
| Well, that might be the problem. Testing "for bugs" isn't a
| terribly helpful activity. Testing for behavior is much more
| helpful, and unit tests can definitely be applied to that
| aspect of the system. Of course, it requires you to properly
| decompose the system into subsystems (modules) with loose
| coupling that can be individually (or in small sets) loaded
| into test harnesses for testing.
| ddlutz wrote:
| Maybe you are not working on the right projects or with the
| right people, because good unit tests are extremely valuable.
| At a minimum, ensuring that making a change to some existing
| code doesn't break existing behavior is valuable.
| ternaryoperator wrote:
| All that could be true and it still would not suggest that no
| unit tests _at all_ is a valid choice.
| iainctduncan wrote:
| These kind of survey's have terrible sampling biases. One of
| those is always going to be ability level, with more beginner,
| early career, or hobbyist folks interested in doing it.
|
| Case in point: I'm a hobby C++ hacker, and I read this. I'm a
| long time pro Python hacker and would not have opened something
| similar for Python! I'm like "the last thing I need to read
| about in my leisure time is what other people are doing with
| Python, that's WORK." haha.
| munk-a wrote:
| C++ not having a "default" unit testing framework that pretty
| much ships with all the IDEs hurts it a lot - the other factor
| is changing culture, I think. Even fifteen years ago unit tests
| were a pretty alien thing to most folks and a lot of software
| in C++ has a _very_ long lifespan. It 's really hard to build
| momentum in an organization to actually set aside the time to
| write unit test coverage over existing code.
| sharikous wrote:
| What surprises me is that VSCode is used more than VS for C++. I
| would have guessed people would go for the "full fledged IDE" for
| the kind of projects that require C++.
|
| Overnight VSCode has become the one size fit all for everything.
| exdsq wrote:
| I would use VS if I was on Windows, but I'm on Linux
| (specifically a Ubuntu distro on a chromebook) where I need
| something lightweight (and cross-platform).
| frabert wrote:
| In my experience, VSCode + clangd works better than full VS for
| most projects
| ant6n wrote:
| VSCode is kind of nice, but those keybindings are very
| confusing and opiniated. And if you install an extension to get
| the bindings you're used to (vim/emacs), it gets even more
| confusing as the extension and VSCode start digging each other.
| Jtsummers wrote:
| VSCode is multiplatform. It runs on Linux and macOS as well as
| Windows which expands its applicability and availability
| greatly compared to Visual Studio proper.
| daenz wrote:
| Which c++ standards do you regularly use? 11% - I'm not sure.
|
| That is extremely amusing and also extremely understandable.
| ape4 wrote:
| What about the dev's (like me) who never heard about the survey.
| [deleted]
| zabzonk wrote:
| I would observe that anyone using C++11 in their code is also
| being compatible with C++17.
|
| And all this idea that modules will solve all compilation
| problems (such as they are)? No, I don't think so.
| jbluepolarbear wrote:
| I haven't done an upgrade from 11 to 17, but I did do a few 11
| to 14 and there were a lot of issues with the boost versions we
| used. Those upgrades killed any interest I had in ever using
| C++ again.
| bluGill wrote:
| Sure and odds are C++98 is compatible with C++17. The problem
| is the reverse, I try to write the most modern C++ I can, but
| I'm limited to my compiler (in embedded systems we rarely get
| updated compilers) which sometimes means I have to write the
| c++17 library things I need in older styles, and of course I
| can't touch anything that needs a non-library update.
___________________________________________________________________
(page generated 2021-07-19 23:00 UTC)