Live data from Hacker News

Stop Building on Corporate-Controlled Languages

blog.deckc.hair

221–230 of 324 posts

Re: Stop Building on Corporate-Controlled Languages

#221

Earlier quoted context omitted.

VB.NET has only superficial similarities to VB 6 and before. Microsoft discontinued the original VB in favor of VB.NET, but the engine lives on in VBA and Microsoft has used VB6 to build various internal things (I think some of the UI to Windows Defender is VB6). But for most "Microsoft shops", VB6 was a dead end, and that left a lot of VB developers out in the cold. They had to reskill with the .NET stuff (significa…

> They had to reskill... This always baffles me. It doesn't surprise me, but it baffles me. Why are so many professional developers having to "reskill" to adapt to a new language? We're not necessarily talking about new domains (that would be different, there's a lot I don't know about server administration and automation, for instance, given my background primarily with embedded and desktop systems). But a language…

Different languages have different libraries with different functions that take different arguments and have different data structures. The tools you used with the old language might be different or required modification to work with the new language.

Maybe libraries they had written to solve problems in their domain have to be recreated.

It seems like switching from Delphi to Java or Go and changing the entire ecosystem would take a bit of time to get back to making the same productivity as with the toolset one has been using for a decade?

Re: Stop Building on Corporate-Controlled Languages

#222

Earlier quoted context omitted.

if developers move from Linux to Windows + WSL as desktop, in my experience, is because Linux as desktop doesn't offer a great experience for everyone. In some terms, companies trying to sell Linux, did a bad work to get it done well.

Well yes, there are many reasons why linux has problems and people go ways to avoid them, but my point was, that Microsoft did not embrace linux for their new love of open source, but to eat its marketshare. I mean, Linux was never significant on the desktop, but had and still has significant market share for developers. In University I was basically tought how to use Linux and despise Windows. Microsoft does not wan…

Yeah, well pretty insignificant market share. Working many year in this market, Linux, Linux Desktops and etc, I can tell you: Microsoft isnt looking to the Linux desktop market share, but to the Mac OSX market share. Windows + WSL is a real contender to Mac OSX as development desktop.

Re: Stop Building on Corporate-Controlled Languages

#223
post #91

Earlier quoted context omitted.

> I'm not going to preemptively switch ecosystems and banish technically good options from my tool belt because I have fears about what could happen. This is exactly where I am at. I use Windows/C#/.NET without any shame for absolutely everything. The more developers who give me grief on some principled basis that " bad, so everything related is bad", the more I double-down on my position. These non-technical argumen…

In the late 90's I used to sit next to a team of about 20 VB developers. When MS decided to make VB obsolete, those folks had to re-learn software development and were getting intern like opportunities because suddenly all that VB knowledge and experience was worth exactly zero. Hopefully y'all fare better when they decide to nuke C# and .NET.

If you know C#, you aren't going to have to "relearn programming", and C#/.Net isn't going the way of VB anytime soon. Moreover, there's so much code in the wild written on this language/platform that there's not going to be any great loss of employability.

Re: Stop Building on Corporate-Controlled Languages

#224

Earlier quoted context omitted.

I'm not sure I believe this. IME, the developer experience of .NET on Linux and Mac platforms is definitely subpar compared to Windows. I've tried to get started on F# several times and have always run into bugs and incomplete/inadequate documentation.

F# will always be a niche language compared to C#. The VSCode extension for F# is bad, while the C# extension for VSCode is just as good as Visual Studio for C#. I'm not apologizing for the .NET team, but if you want to be productive with F# then you really should stick to Visual Studio on Windows.

F# has been working on much better language servers for VS Code (building on top of the good parts of C#'s work and the larger Roslyn compiler infrastructure ecosystem), but also F# is much more a "community" project than much of the rest of .NET and a lot of it is "at the pace of open source" rather than "at the pace of corporate initiatives", for both good and bad.

Re: Stop Building on Corporate-Controlled Languages

#225

Earlier quoted context omitted.

*foot the bill

*fit the bill - https://dictionary.cambridge.org/us/dictionary/english/fit-t...

No. Foot is right, meaning "pay". "Fit the bill" is also used, but not in this context.

Re: Stop Building on Corporate-Controlled Languages

#226
post #98

Earlier quoted context omitted.

> There is typically no need to manually free objects when you are done with them. You just let the system destroy the objects automatically when they go out of scope. By deciding where to scope the variable with the destructor/drop function, you've already made a manual decision about memory management. The compiler implicitly inserting a call to the destructor does not automate the decision of when/where to allocat…

Even in languages with a garbage collector you make decisions that impact the lifetime of an object. That is not what makes the memory management manual. For instance, you can still have a memory leak in Java if you maintain a reference to an object that you never intend to use again. It’s still up to the programmer to prevent this. > With true automatic memory management like tracing GC or reference counting, you ha…

> And this is basically what Rust does with ownership. When the object goes out of scope and ownership is not transferred, the memory is freed. It’s just that it doesn’t always need the reference counting part. But you can rest assured that it will be freed.

That's manual memory management. Like I said, the fact that you didn't explicitly write the call to free doesn’t make it automatic - that's just syntax sugar. Explicitly transferring ownership involves the programmer manually telling the compiler "keep this alive." If you're the one doing the bookkeeping, that's manual. Rust helps you with the bookkeeping, but it doesn't eliminate altogether.

As opposed to a tracing GC, where you don't need decide on the scope of the value itself (just the scope of the reference), leave lifetime annotations, use std::move or the like to transfer explixitly ownership, or write out destructor/drop procedures to tell the compiler exactly how to free memory. The runtime does all the bookkeeping on its own.

> The programmer might forget to free the memory or free memory too soon and use an object after it’s already been freed. This is not the case in Rust.

Yes, it's possible to run into pathologic cases in any algorithm for automatic memory management where memory isn't freed - that's the nature of Turing completeness. No scheme for automatic memory management claims to be 100% foolproof. That doesn’t mean that tracing GC is actually manual memory management.

> This just isn’t true, and it would be anarchy. You know that the object will be freed sometime after the last reference to it dies. This is the whole reason to use automatic memory management.

That's a surprisingly literal interpretation of what I said. What I mean by "you have no idea" is that if you read a function that uses reference counting or tracing GC, you cannot say for sure if there are going to be deallocation when that function is called, even for a pure function where you know the particular input values to that function. That's because the decision to deallocate depends on the whole program state, including references to the same value that may be held by some third party library that you linked in. As opposed to Rust, where (unless you are using Rc or Arc) you could annotate that function with comments about where things will be deallocated and if you understand the semantics of the language you will be right every time. Not because you are a genius who can divine the machinatioms of the compiler/optimizer running through algorithms to automatically insert frees, but because you actually made those decisions yourself, whether implicitly or explicitly, by leveraging the semantics of the language. Like I said, this is not a new concept. You could write C++ code without any instance of new, delete, malloc, or free all the way back in the 80s.

Re: Stop Building on Corporate-Controlled Languages

#227

The post fails to connect the dots to explain why I would want to "stop using corporate-controlled languages". The author mentions that they stopped using them because they "phone home about all kinds of things". But that implies that I dislike any and all "phoning home" (which is the vast majority of instances is simply anonymous statistics to help you, the user, find the most popular packages) enough to shun it. Bu…

> But that implies that I dislike any and all "phoning home" (which is the vast majority of instances is simply anonymous statistics to help you, the user, find the most popular packages) enough to shun it.

I totally agree with this. This "phone home" scenarios aren't rummaging through your file system or reporting back what websites you are visiting.

It almost seems like there is an underlying level of paranoia, or people are working on extremely sensitive stuff that they are concerned will be reported back or caught up in some poorly anonymized telemetry reports. I personally leave telemetry on and am not concerned with it. If it helps improve the tools I am using on a daily basis, go for it.

This is different than the analytics on the web which know everything from what food I like to what music I listen to and a lot more. We're talking performance metrics and stability issues, not what I may want to purchase today.

Re: Stop Building on Corporate-Controlled Languages

#228
post #9

Earlier quoted context omitted.

I agree, but I do think that you have to think of the ecosystem of the language if the major cooperation steps away or dials back, maybe thinking of them more like 'dependency'. Go lived through community alone, how well will twitters projects hold up without their involvement because I imagine it's not very lean for twitter to spend time on. I think this argument is better had for frameworks and JavaScript libs. Hav…

This is the real threat. So much “open source” technology is just free community editions of closed source software. If any of these companies decide to change course for any reason, you’re screwed. Who’s going to pick it up? You? No, you were coasting along on someone else work, you don’t have a good expertise or slack to support it. But someone who law will right? Nah. They’ll just shrug and pivot, as will you. May…

> Maybe I’m just bitter, but I’m on my third “open source” text editor because of machinations inside megacorps suddenly deciding shutdown perfectly fine projects.

Advice for choosing a text editor:

• Avoid Electron.

• Avoid custom-looking GUI toolkits.

• Avoid IDEs, unless they're highly-modular with a rock-solid, simple base.

• Avoid complicated build toolchains.

I'm using Geany at the moment, which… almost meets the third criterion, and does meet the fourth. If Geany support stops, I'd vaguely be able to make changes to it; the code's written in C, licensed GPLv2+, and it's well-documented. (If GTK2+ or Scintilla support stop, of course, no dice; I don't understand any of that area of my software stack well enough.)

Of course, there are things I want it to do that it doesn't; Geany isn't perfect for my workflow. Better than trying to write my own, though!

Re: Stop Building on Corporate-Controlled Languages

#229

Earlier quoted context omitted.

> They had to reskill... This always baffles me. It doesn't surprise me, but it baffles me. Why are so many professional developers having to "reskill" to adapt to a new language? We're not necessarily talking about new domains (that would be different, there's a lot I don't know about server administration and automation, for instance, given my background primarily with embedded and desktop systems). But a language…

Different languages have different libraries with different functions that take different arguments and have different data structures. The tools you used with the old language might be different or required modification to work with the new language. Maybe libraries they had written to solve problems in their domain have to be recreated. It seems like switching from Delphi to Java or Go and changing the entire ecosy…

> Different languages have different libraries with different functions that take different arguments and have different data structures. The tools you used with the old language might be different or required modification to work with the new language.

Those are all knowledge differences, not skill differences. Programming is a combination of knowledge and skill, the skill part transfers between languages and environments very well. The knowledge, not always. But learning a new (to you) suite of libraries is not "reskilling". You're not developing a new skill by learning Java's API versus C#'s API.

Re: Stop Building on Corporate-Controlled Languages

#230

Earlier quoted context omitted.

In the late 90's I used to sit next to a team of about 20 VB developers. When MS decided to make VB obsolete, those folks had to re-learn software development and were getting intern like opportunities because suddenly all that VB knowledge and experience was worth exactly zero. Hopefully y'all fare better when they decide to nuke C# and .NET.

I'm not totally sure what that means. VB and the change to .NET are kind of a one-off event. A "VB developer" could mean anything from someone writing VB/ ASP in a text editor with minimal syntax highlighting to someone using a drag and drop editor and never writing code to someone who was really just writing fancy Excel macros. If you want to suggest some of the people working in a GUI only had trouble making the tr…

At the height of VB6 usage, there was no VB.net or Visual Studio. There was the VB6 windows binary that was a GUI form builder and IDE. ASP was brand new and for web development, so there was not much overlap in the dev community. I don't think it was even possible to write VB code in a simple text editor and compile that without the VB IDE. Cold Fusion and Power Builder were similarly corporate controlled and suffered the same fate.

A C programmer during the same time period saw almost no changes to their language or job opportunities.

Post reply on HN