Developer survey: C# losing ground - Page 1
Forum section: electronics / general

author: Karel
author_rank: Super Contributor
timestamp: October 22, 2020, 06:53:49 pm
content: C# has fared less well. “The fact that C# lost three places during the last three years is mostlyexplained by its slower growth compared to C/C++ and PHP,” the report stated. “C# may besustaining its dominance in the game and AR/VR developer ecosystems, but it seems to belosing its edge in desktop development – possibly due to the emergence of cross-platform toolsbased on web technologies.”https://www.theregister.com/2020/10/21/developer_survey_c_losing_ground/

author: Wuerstchenhund
author_rank: Super Contributor
timestamp: October 23, 2020, 07:34:35 am
content: Surveys like these have the value as data gained by reading from fish guts.Not sure what industries they surveyed in but the results suggests it's very narrow (web/cloud, IoT, mobile) and leaves out a lot of other industries (like embedded).As one of the El Reg commenters noted, the survey is as useful as the Gartner reports.

author: Wilksey
author_rank: Super Contributor
timestamp: October 23, 2020, 08:31:21 am
content: Yet according to TIOBE C# us up 0.3%Seriously though who cares what the "trending" languages are, it's like comparing web frameworks, it'll change next week and a new one will be along next month.C# is primarily used for desktop apps, you can use Xamarin for mobile and ASP for web, and .NET core for cross platform and Unity for games.You can also use VB.NET, or C++ or Java, or Javascript in frameworks like Ionic or React Native for mobile, web etc.You use what is right for the project and what you know, if C# suddenly went to the bottom of the list (unlikely) would I stop using it? Nope.As Wuerstchenhund has said, these surveys are not worth much.

author: Syntax Error
author_rank: Frequent Contributor
timestamp: October 23, 2020, 09:36:34 am
content: That survey is based on developer community size, not on the scope, application, security, robustness, support or quality of those language. Or even it's salary position?The only harm these surveys can do, is when dumb CTO's are deceived into thinking which language is "trending" right now and, go and redeploy the C# and Hadoop teams into programming with Javascript and Node.

author: Siwastaja
author_rank: Super Contributor
timestamp: October 23, 2020, 03:00:25 pm
content: It's completely meaningless in any case.For example, Python being "popular" in AI / machine learning means that exposed Python APIs are used to configure and supply data to existing complete AI/ML engines, which are obviously written in languages like C, asm, OpenCL, CUDA, VHDL, Verilog...

author: hans
author_rank: Super Contributor
timestamp: October 23, 2020, 03:25:29 pm
content: Perhaps even more important is that these surveys only look at projects that are part of the past. E.g. COBOL was very popular many years ago, but such information has a half-life time of only a few years.Probably the best languages for future technologies haven't been invented yet, or are so narrowly adopted that they are not on this list. However, if you're keen on learning and perhaps interested in the academic background of such tools, I think those developments are for more interesting (although probably even has a shorter half-life time)..For general purpose "getting things done", languages like Python, C/C++ and C#/Java are my personal choices.Also, I'm amazed that:- C/C++ are mentioned together, while they are completely different beasts- Games are not mentioned with C++, whereas many game engines are still developed in C++..- Games is a main application for C#? Okay then.

author: Mechatrommer
author_rank: Super Contributor
timestamp: November 04, 2020, 01:37:19 am
content: if you are so popular, why annoy people with advertisements? this has been keep going for weeks, no dependencies my arse..

author: VK3DRB
author_rank: Super Contributor
timestamp: November 05, 2020, 09:27:37 am
content: Good to see Visual BASIC is gone. Visual Beginners All purpose Symbolic Instruction Code. Its a crock. During the dot com boom VB programmers were overpaid script kiddies.

author: bd139
author_rank: Super Contributor
timestamp: November 05, 2020, 09:53:32 am
content: Meh. C# is slowly dying and I say that as someone who has been programming in it for nigh on 18 years. Ignore the metrics, ignore the marketing. The real sign is that most of the large enterprises which were primary customers for a large chunk of that period are chucking it out after being burned over and over again by massive costly breaking changes in the ecosystem and the associated abandonment by the open source contributors. The emperor changes clothes faster than a Eurovision presenter. On top of that the traditional userbase is being thoroughly gouged for cash by Microsoft on the self-hosting front to push them to the cloud so they can milk you for opex instead of capex. Now the issue is when you have the choice of moving to Microsoft's cloud or someone else's, someone else gets the business due to the better maturity and reliability ratings in the commercial due diligence reports. Then when you get there there's a whole lot of non C# ecosystem stuff treated as first class citizens which is sexy, works out of the box without tearing you a new arsehole every 5 minutes and gives you better ROI.A fine example of the shit show that C# is, well the ecosystem. A little story broken down into bullet points about how to ruin a platform and trust with your customers.1. 3MLOC C# web forms application dating back to 2002 and evolved since backed on SQL server on owned hardware.2. Along comes Remoting/DNA fad from MS P&P. Chunks rewritten into semi distributed nightmare on advice.3. Along comes WS-* fad from MS P&P. Chunks rewritten into even worse distributed nightmare on advice.4. Along comes MVC from MS. UI rewritten using this and EF.5. EF, WWF, Remoting, WS-* deprecated (yes all of them) and enough of MVC rewritten to break everything that's left (when they added async which is incidentally buggy as fuck even 10 years later with regular production deadlocks)6. .Net core comes along. New approach is microservices (this is correct for this company). Huge swathes rewritten so it's portable to Linux, but deployed on windows while infrastructure is migrated.7. Massive breaking changes in .Net Core while they consolidate the API with .Net standard. Huge changes required.8. At this time they're pushing people to cloud so SQL licenses start going up 20% per year with some bigger jumps due to how they change core licensing.9. Another set of massive breaking changes to the entire web pipeline which causes 3 months wall clock work for 3 people across 120 microservices.10. Try to get this shit working in kubernetes on linux and you find that the certificate store implementation is STILL based on the shitty half arsed APIs written in 2002 which has an abstraction which doesn't make sense on any platform other than windows resulting in 2 month delay on a project while people work out how to do cert management with hashicorp vault in this environment which ends up in a whole chunk of sticky tape and string just to get it out of the door.11. Along comes MSFT and says they're going to rebrand it all .Net 5.12. Everyone goes FUCK YOU we've had enough of this shit. No new projects on .Net / C#So the UI is going in the direction of React and Electron and the back end is Go, Python or Node. And the storage engine is going postgres. And this is all on AWS. And the grass is greener. There's some poo dotted around on it but it's not up to your neck.That's why C# is dying: Lots of people experienced with it don't want to get hurt any more.

author: Mechatrommer
author_rank: Super Contributor
timestamp: November 05, 2020, 10:02:30 am
content: Quote from: VK3DRB on November 05, 2020, 09:27:37 amyou'll get dissapointed when i publish my next free software. i'm the living proof that the stats is wrong. and few other softwares that still developed and maintained to this day. we are the resistance to the "bloatware".

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 05, 2020, 03:50:04 pm
content: Quote from: bd139 on November 05, 2020, 09:53:32 am... or next generation cannot accept to be 'static, strong, safe and nominative,' and prefer 'dynamic & duck'

author: bd139
author_rank: Super Contributor
timestamp: November 05, 2020, 03:56:01 pm
content: Not so sure about that. Seeing a big focus on Go and TypeScript surprisingly.

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 05, 2020, 08:04:38 pm
content: No wonder... Humans walk forward, not backwards.Should we look into a crystal ball to see what will happen with your Electron app in a decade time?

author: bd139
author_rank: Super Contributor
timestamp: November 05, 2020, 08:24:30 pm
content: Well I quit and am going back to contracting so I don’t give a fuck what happens to itAnd that’s how you keep your sanity in this mess.

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 05, 2020, 08:46:22 pm
content: Thought you guys there locked inside into IR35 for a while if not forever.Let's see from a positive angle, like a plumber in a shit bath to neck, at least know where don't swim and how to connect pipes to drain this quickly and get out.A temporary stinking is not really problem whatever C#, Java or... PHP

author: bd139
author_rank: Super Contributor
timestamp: November 05, 2020, 08:53:17 pm
content: IR35 is only a problem if you're doing 100% disguised employment. Not an issue if you sell a contract for services, rather than an individual's contracting services (subtle but important distinction).Good analogy with the stink. I can cope with a little but you start to drown after a while. Permanent employment is not for me.

author: james_s
author_rank: Super Contributor
timestamp: November 05, 2020, 09:50:51 pm
content: I agree that it's meaningless, you use the language(s) that your employer is using in most cases, or the one you are most comfortable with for personal projects. I haven't worked anywhere that used C# since back in my Microsoft days, in the modern tech industry Python and Javascript are used for most of the stuff that would have used C#.

author: Syntax Error
author_rank: Frequent Contributor
timestamp: November 09, 2020, 09:27:38 pm
content: Quote from: bd139 on November 05, 2020, 09:53:32 amOn the same page dude. C# is a great language but, a pity MS kept on moving the goal posts every two years with another sugar coated turd in a presentation foundation (bun) rebrand. As you say, everyone has just walked away. .NetCore is now a far too deep ecosystem for javascript framework fanboys to wade through. Try hiring a team, in six weeks, who know their WCF from a WTF.Remember Microsoft Silverlight? I was an MVP for that. After they ploughed it into the WPF ground, I went on to other stuff; mostly converting MVC code into MVVC code. And back again. Now it's Azure, Azure, Azure... why? Use AWS like a grown-up.Remarkably, there are one or two jobs in town supporting classic Active Server Pages (ASP before .Net) applications, written in VB Script. Such halceon days.

author: Zbig
author_rank: Frequent Contributor
timestamp: November 14, 2020, 12:05:10 pm
content: Quote from: Siwastaja on October 23, 2020, 03:00:25 pmNot to Karel, it's not. C# is developed by Microsoft and he's found a "proof" it's losing - that's all that matters to him. Judging by the guy's posting history (on an EE forum), he spends his days hating on everything Microsoft religiously and evangelizing anything Linux. I'm surprised any of you guys who's not completely new here keep falling for any of this dude's posts - you should really have known better than to waste your time on this nonsense.

author: bd139
author_rank: Super Contributor
timestamp: November 14, 2020, 12:09:26 pm
content: I happen to agree with Karel. Sit with a large Microsoft developer team (I ran a 100 person team until recently) and everyone wants out if they haven’t already bailed.I’m ex MSFT certified this that and the other and ran a certified partner for a few years. I’ve even got a few fair C# libraries and examples on my public GitHub account. But Shit’s over now. The cloud won and the language and tooling is superior elsewhere.What matters is what you deliver and how long it takes to do that and C# and .net are never the best options unless you happen to have a lot of ancient piles of it already at which point it’s being paid danger money

author: Syntax Error
author_rank: Frequent Contributor
timestamp: November 14, 2020, 12:50:56 pm
content: Simply, C# lacks productivity in an enterprise environment. UK wide, over the last decade I have noted a distinct decline in the hourly rate for .net, but some quite stupid hire rates for React and Jenkins, for example. As for Python with Blockchain, print your own money!Another .Net fail was Microsoft .net micro framework for embedded IoT devices. Like the Netduino, which you've probably never heard of? Hang on, it's now called the Microsoft .net NANO framework. Sorry for any confussion.

author: Mechatrommer
author_rank: Super Contributor
timestamp: November 14, 2020, 12:52:26 pm
content: Quote from: Zbig on November 14, 2020, 12:05:10 pmwhen the # thing came, being as long time VB6 user, i tried VB#.. just what kind of nonsense is that? i dont have time learning new thing, so i stick with VB6... so if # thing losing ground? i dont care a rat arse. they should've polished the older VB6 such as providing true OOP capability to Classes, tree/pointer data structure etc... from my point, they've screwed themselves a long time ago.

author: bd139
author_rank: Super Contributor
timestamp: November 14, 2020, 12:55:46 pm
content: Technically that’s what VB.Net was supposed to do. But VB was a dead end. So C# was the primary language.To be clear the language is fine. It’s the runtime, the ancillary libraries, the management and the developer tooling where the turds lurk.

author: james_s
author_rank: Super Contributor
timestamp: November 14, 2020, 06:33:47 pm
content: Quote from: Syntax Error on November 09, 2020, 09:27:38 pmMicrosoft has a severe case of ADHD. They are constantly changing and rebranding products, changing direction, going all-in on something and then abandoning it a few years later. This sort of thing happened internally too, back when I worked there re-orgs happened constantly, you'd come in to work one day and find out that now you report to a different manager and everything is shuffled around. Sometimes it seems like the only time they really stick to their guns and keep forging ahead is when they're trying to force something unpopular on the market.

author: Mattjd
author_rank: Regular Contributor
timestamp: November 14, 2020, 11:32:37 pm
content: Guido Von Rossum joins Microsoft.https://techcrunch.com/2020/11/12/python-creator-guido-van-rossum-joins-microsoft/Be nice if that means they'll be replacing vba/.net/etc. with Python.I really don't understand Microsoft. They got a partial javascript library going as an alternative to VBA in Office but it was never fully extended to all the object models and now appears to be dead.I'd love it if they move stuff to python and had more products be OS agnostic.

author: Karel
author_rank: Super Contributor
timestamp: November 15, 2020, 07:35:20 am
content: Quote from: Mattjd on November 14, 2020, 11:32:37 pmHow? Python is extremely slow.Also, that would mean we will have Python 2, Python 3, Python 4 and MS Python...

author: AlfBaz
author_rank: Super Contributor
timestamp: November 15, 2020, 07:47:50 am
content: Quote from: Karel on November 15, 2020, 07:35:20 amWe need to introduce Crocodile 1 to eat all the pythons

author: Mechatrommer
author_rank: Super Contributor
timestamp: November 15, 2020, 08:32:04 am
content: maybe C# is not good enough flute note to make the python sleep, i think we need to go back and polish the C++ note, thats the proven one. (Qt is our "The Last Hope")

author: bd139
author_rank: Super Contributor
timestamp: November 15, 2020, 09:40:35 am
content: Quote from: Karel on November 15, 2020, 07:35:20 amIt is quite slow. There is only Python 3 nowGo has eaten python’s lunch where performance is required now.

author: SilverSolder
author_rank: Super Contributor
timestamp: November 15, 2020, 03:21:24 pm
content: Quote from: bd139 on November 05, 2020, 09:53:32 amThis is the way MS works with every product they have, it seems - keep changing stuff that works, keep randomly changing the UI, keep adding fluff - resulting in products that are rarely allowed to mature and become the truly cost effective "no brainer" choice that they so easily could have been.Funnily enough, I am beginning to see that open source software is much, much better on this front. E.g. I was playing with Audacity the other day, downloaded the latest version just to have the most recent fixes. What did I find? - a very familiar product that hasn't changed much in UI terms, but instead has real and useful improvements and enhancements that doesn't break existing paradigms.It seems to me that when things are made "for profit", the temptation is simply too strong to turn the product into a fashion accessory that has to be replaced annually to stay "on trend", with the arrival of the new Colour of the Year and fresh faces on the catwalk!

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 05:32:54 am
content: I think C# is doing very good considering the top 5 in the list are free. You have to shell out $700 clams as minimum to buy a copy of Visual Studio from Microsoft. I worked with some big companies. They all use C#. The smaller mom-and-pa ones all use the free stuffs like PHP.

author: Berni
author_rank: Super Contributor
timestamp: December 15, 2020, 06:41:11 am
content: Id say C# is great at doing what it was made for, easy desktop app development.Microsoft always cared about the developers that make apps for there OS so they have been providing VisualStudio for the last 25 years as THE way of making Windows apps. Back then it mainly gave C++ and VB to its users. If you needed to make a big high performance app you used C++ if you just wanted a quick tool to automate some CSV file number crunching you used VisualBasic.Now days VisualStudio provides a whole zoo of languages because Windows developers wanted to use them. Heck it even supports building and remote debugging for Linux. But at the forefront in VisualStudio are now C++ and C# (Well you can still use VB.net if you really want). Its popularity lead to .net languages becoming even cross platform.Sure C# has some flaws but otherwise it is a very good high level language. It has plenty of features and library support while still being almost as performant as C++. Transition from C++ to C# is pretty smooth since it uses the same syntax and even porting code from C++ to C# is easy. And lets be honest what other languages apart from C++ and C# are you going to use to develop windows apps?

author: newbrain
author_rank: Super Contributor
timestamp: December 15, 2020, 08:15:34 am
content: Quote from: Berni on December 15, 2020, 06:41:11 amNote that I'mnota C# developer in any way shape or form, and I only dabbed in the language many years ago (when it was new), so my experience, while not exactly zero, is very close to nought.Two weeks ago, I designed (big word) and built a small HW watchdog from my Hyper-V server*.I needed a service/daemon to kick it periodically, so I decided to write a Windows service.In one afternoon I managed to write and test a Windows service that:is perfectly integrated in the service life cycle (Start/Stop/Enable/Disable etc.)reads and writes in separate threads to all available USB and real serial portsuses Windows logging system with a custom log, visible in Event Vieweris only about 100 lines of code (apart from some auto inserted boilerplate)All of this in C# in Visual Studio Community.I'm convinced that using any other language would not have been this easy and painless.And, honestly, the language is quite interesting - though I'm sure I've used it in a very naïve and novice way.* It hosts all of my remotely accessible stuff in a number of VMs, and I had experienced a couple of brown-outs that left it hanging.Since I was going away for more than one month, I wanted to make sure it got rebooted properly in case of a hang.It's based on a MKE04 Kinetis I had lying around, and it will reset the server (with escalation to a full power-off + power-on) if not kicked by disk activity plus messages on the serial.

author: bd139
author_rank: Super Contributor
timestamp: December 15, 2020, 09:23:05 am
content: It probably looks like it works. Watch out for threads and service shutdowns. Sometimes the two are fairly incompatible and will hang service manager. Never as easy as it looks unfortunately.On the subject of C# I will never have to use it or Windows again now. I am so happy. Writing Go and Python

author: newbrain
author_rank: Super Contributor
timestamp: December 15, 2020, 09:33:13 am
content: Quote from: bd139 on December 15, 2020, 09:23:05 amThanks!Threads are joined when receiving the service stop event/callback/whatever is called, so it might hang there for a short time but will cleanly shutdown in the end (I tested it, though on another machine).

author: Karel
author_rank: Super Contributor
timestamp: December 15, 2020, 10:48:28 am
content: Quote from: bobcat2000 on December 15, 2020, 05:32:54 amIn case of windows, yes, but that's a minority. The computerworld is much bigger than the desktopmarket.Guess what's the most used operating system in the world. Hint, it's not windows...

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 05:11:39 pm
content: Talking about minority. I worked with a client who had an IBM server the size of a small refrigerator. They were hiring people to do COBOL. I was amazed to see this huge trunk of relic could still run 24/7 for so long.

author: bd139
author_rank: Super Contributor
timestamp: December 15, 2020, 05:24:44 pm
content: I am currently replacing three of those

author: SilverSolder
author_rank: Super Contributor
timestamp: December 15, 2020, 06:31:29 pm
content: Quote from: blueskull on December 15, 2020, 05:34:19 pmIt looks like MS is slowly moving that way, adding more and more Linux style functionality to Windows.

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 06:37:23 pm
content: The bigger companies I worked for before cannot use the free stuffs from MS. This may be one of the factor why C# is losing ground."... If you are an enterprise, your employees and contractors may not use the software to develop or test your applications, except for: (i) open source; (ii) Visual Studio extensions; (iii) device drivers for the Windows operating system; (iv) SQL Server development; and, (v) education purposes as permitted above.An “enterprise” is any organization and its affiliates who collectively have either (a) more than 250 PCs or users or (b) one million U.S. dollars (or the equivalent in other currencies) in annual revenues, and “affiliates” means those entities that control (via majority ownership), are controlled by, or are under common control with an organization."

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 06:49:05 pm
content: Quote from: bd139 on December 15, 2020, 05:24:44 pmThe machine was amazing. What was even more amazing was that some college grads actually went there for the interview for COBOL programming. The HR people were dead serious in the interview.

author: bd139
author_rank: Super Contributor
timestamp: December 15, 2020, 07:07:47 pm
content: Quote from: bobcat2000 on December 15, 2020, 06:37:23 pmThey’re going to die. I’ve watched half the European finance sector with that restriction getting replaced with far more agile companies.

author: Berni
author_rank: Super Contributor
timestamp: December 15, 2020, 07:17:14 pm
content: Quote from: Karel on December 15, 2020, 10:48:28 amYep if you include mobile OSes its Android.And what languages do people develop for Android?https://www.geeksforgeeks.org/top-programming-languages-for-android-app-development/- Java- Koltin- C#- C++..etcApart from Koltin (That is a special android only language) all of the others are languages that are used for developing PC apps from before Android even existed.You can't say a language is dead just because its not commonly used on the most common OS (Tho C# is commonly used on android). Certain languages are good for doing certain things. For example, C++ is by far the most popular in making 3D game engines, but making one in pure python would be horrible. Just because Python is not usable for that and it has crappy performance doesn't automatically make it a bad or useless language. Trying to do the high level quick scripting tool job of Python using C++ would be a horrible experience.If the Windows desktop is such a niche market then why are so many companies creating so many apps exclusive for Windows while also charging thousands of dollars for a licence (sometimes for just an annual license). They must be crazy for making their app run on only such a niche platform. Imagine what sort of sales Altium Designer could make if they ported it from being Windows only to also supporting Android, add iOS into the mix and that is like 5x the user base easy!.... <sarcasem mode=off> Just like languages all have their place so do platforms. If you are creating a freemium casual game you most probably want it on Android and iOS, nobody will play that on a PC. If you are making an FPGA development tool you probably want to target a Windows PC since that's what engineers use. If you are making a more creative type application such as video editing you proabobly also want to support MacOS since that's what the target audience uses. If you are making a SQL server you proabobly want to target Linux because that's what most users will want to run it on. Use the appropriate platform for the job.

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 07:46:26 pm
content: Quote from: bd139 on December 15, 2020, 07:07:47 pmThe restriction is not a too big of factor. They have money and need write off. The problem is that they cannot use anything else. The among of records they need to process is humongous. It is either C++ or else. I guess C# is the closet.

author: bd139
author_rank: Super Contributor
timestamp: December 15, 2020, 08:02:00 pm
content: Quote from: bobcat2000 on December 15, 2020, 07:46:26 pmI can’t name a single industry where this isn’t a self inflicted restriction because it’s run by people living with their head up in the clouds in an ivory tower. I regularly design and build 100k TPS size systems with data corpus in the tens of terabytes. And that’s with higher level languages such as python for example. I don’t buy this argument at all.I’ve worked in defence (DV cleared), insurance and finance sectors which are the highest risk for ref.

author: bobcat2000
author_rank: Regular Contributor
timestamp: December 15, 2020, 08:39:57 pm
content: That's why Python is on top of the list.

author: Bud
author_rank: Super Contributor
timestamp: December 15, 2020, 08:58:23 pm
content: I am curious how you deal with version incompatibility in python? I just cant imagine how is python so great, as a *user* i have to track down which version of python each goddamn piece of shit was written in.

author: bd139
author_rank: Super Contributor
timestamp: December 15, 2020, 09:05:36 pm
content: Rarely an issue in practice. You usually pick the latest system python3 and pull all the dependencies in with pip and venvHonestly I prefer Go now though. I like a typed, compiled language that farts out one static binary better. But not one with VM baggage. Nothing worse than trying to debug a C# app wedged in a container that takes 15 minutes to start while it pisses around doing JIT (!). Or having to write venv wrappers.

author: Karel
author_rank: Super Contributor
timestamp: December 15, 2020, 09:56:59 pm
content: Quote from: Berni on December 15, 2020, 07:17:14 pmNope, also if you take Android out of the equation, Linux is the most used OS.Think about your wifi-router, your television, your navigation system, many of them are running some form of Linux.Most (internet)servers are running Linux. Even most of microsofts' azure instances are running Linux...The desktop is the only place where Linux isn't king.

author: james_s
author_rank: Super Contributor
timestamp: December 15, 2020, 11:03:07 pm
content: Quote from: Bud on December 15, 2020, 08:58:23 pmWe stuck with Python2 for a long time, then about a year and a half ago we updated to Python3 once some of the modules we depend on had been verified as compatible. I don't recall hitting any other incompatibilities with minor version updates.

author: brucehoult
author_rank: Super Contributor
timestamp: December 15, 2020, 11:56:36 pm
content: I'm thinking it's time I properly learned a new mid-level language.I want something with nice data structuring and algorithm libraries, productivity approaching Ruby and Python, but with speed like C++/Java/C# *AND* able to produce small static binaries so I can use it both on the desktop and on microcontrollers with 16 K or maybe a little more of RAM (but quite a bit more flash for the program).The candidates seem like Swift, Go, Rust, and D in decreasing order of popularity in the survey presented here. I guess OCaml or Haskell or similar as rank outsiders.In the past I used Dylan, and even won prizes in the ICFP Programming Contest using Dylan in the distant past (which really showed off the programming productivity combined with fast execution aspects), but that is still now 20 years later ... ahem .. ahead of its time.Opinions?

author: Nominal Animal
author_rank: Super Contributor
timestamp: December 16, 2020, 12:34:26 am
content: Quote from: brucehoult on December 15, 2020, 11:56:36 pmI'd love to hear you try Swift, Go, and Rust, and describe your initial reaction, and the reasoning as to why you prefer/pick the one you do. With your experience, it would be useful, informative.

author: brucehoult
author_rank: Super Contributor
timestamp: December 16, 2020, 04:48:35 am
content: Quote from: Nominal Animal on December 16, 2020, 12:34:26 amMaybe but I was kind of hoping to not have to learn all of them :-)I had to make a bit of a modification to a Swift program recently. It looked quite nice and wasn't too hard to figure out what was going on. I had a bit of fun figuring out how to persuade it that an optional value from a GUI field actually contained a value -- or, actually, that several of them all did -- but the technique was reasonable enough.In Dylan we do optional values such as an optional integer by giving it the type "type-union(<integer>, #f)" (which can be abbreviated "false-or(<integer>)" using a standard macro. Then when you use it you just say "if (myVal) /* compiler knows it's actually got an integer here */ else /* integer was not present */ end".Swift is obviously huge now on Apple platforms, but I'm curious what the Linux story is. I know it *exists* on Linux, but is it practical? Optimized?

author: Berni
author_rank: Super Contributor
timestamp: December 16, 2020, 06:32:30 am
content: Quote from: Karel on December 15, 2020, 09:56:59 pmI was talking about OSes that users interact with, so platforms where the user can chose and install there own software as a supported feature. The platforms that commercial software is sold for.Yes technicaly all of that is linux, including Android. But embedded Linux is mostly a bloated glorified RTOS and the only reason it is used for that is that provides a standard API for a massive collection of software modules, so its much easier to get advanced functionality working on it. This is actually my most hated application of linux. The linux images that often come on consumer electronics devices are really old kernel versions that are not optimized for a fast boot time at all. So the result is a device that takes 1 minute to boot, stumbles around with slow responsiveness for the next 20 seconds, occasionally also hanging and needing a hard power cycle. None of this is the fault of linux, its the fault of the software developers who halfassed slapped linux on to there. I even have a frigi'n USB webcam that runs linux! WHYBut if Linux is supposed to be an argument against C#. Well Microsoft provides the .NET runtime for linux and mac on the website and you can develop and debug .NET linux apps directly from VisualStudio without any extra plugin or extension required. You can build .NET apps for linux directly from the command line on a linux host or any other open source IDE you want. The app can also be optionally precompiled into a machine code executable with no JIT.But as i said C# strong point is easily making desktop apps, it is a better replacement for VB6. You can use it for other things, but there tend to be other languages that are better suited such as Python for when you need quick high level scripting or C++ for when you need maximum performance or doing low level driver stuff. Don't use a hammer to get a screw in.

author: Karel
author_rank: Super Contributor
timestamp: April 26, 2021, 03:33:32 pm
content: "The number of active C# developers, meanwhile, has increased by 500K. The news is not great for Microsoft, however,since according to SlashData it is most popular in AR/VR development, thanks largely to its use in the Unity platform.The researchers marked it as "little used" in data science and mobile development, suggesting that the company haswork to do if it is to make its Xamarin and MAUI (Multi-Platform App UI) technologies a success."https://www.theregister.com/2021/04/26/report_developers_slashdata/