Earlier quoted context omitted.
A friend (C# dev) just refused a job from a company in the Netherlands, for a D dev position. I don't know if it's the same company. It's not that they're not capable, but some will not want to risk several years of their career to learn it.
And did they refuse the job because of D, low salary, not wanting to move to the Netherlands or some other reason? I could see a C++ dev giving this a try without hurting their career prospects, but C# devs are not exactly known for trying out non-mainstream technologies. If they switch for a couple of years MS will pump out a couple of frameworks and .NET programming languages. Fire and motion as such.
How an Engineering Company Chose to Migrate to D
71–80 of 170 posts
Re: How an Engineering Company Chose to Migrate to D
#72Earlier quoted context omitted.
The biggest problem is they have engineers who have turned their hands to programming, one would expect, without the formal training and so have latched onto various antipatterns without knowing any better because Pascal allowed them to get away with it - painting themselves into a corner. He mentioned an awful lot of code that would have to be refactored, and it could be that they are just too far down the rabbit ho…
In this case, I'd look into compiling the existing code into .dll/.so files, and just linking between Extended Pascal and ${NEW_LANGUAGE}. Then, convert the code to ${NEW_LANGUAGE} as needed, if needed. That solution is probably the lowest cost / safest course... Assuming the Extended Pascal compiler they have supports it. But I suspect choosing D was a fait accompli.
Re: How an Engineering Company Chose to Migrate to D
#73Earlier quoted context omitted.
Framing closures as a “requirement” is pretty strange. Depending on the context they can be an ergonomic nice-to-have, but it’s not like you can’t express a program without them.
>Depending on the context they can be an ergonomic nice-to-have, but it’s not like you can’t express a program without them. When talking about turing complete languages, everything is an ergonomic nice-to-have. All language features aspire to be so nice to have, that you come back around and call it a necessity. But you can still express a program without them, unless you strip out so much as to lose turing complete…
(I'm generally pretty skeptical of the whole "write down your requirements with no awareness of available solutions and then choose a solution that meets them" approach to decision-making).
Re: How an Engineering Company Chose to Migrate to D
#74Maybe I am too timid, but the closing word saying that once the transpiler is ready they could switch overnight seems a bit optimistic. I feel that splitting as much as possible the project into chunks/components and then replacing them one by one sounds more realistic (with the appropriate test harness). Maybe that is the plan but it is not touched in the post. And then maybe an issue that is not that bad, but you a…
I think "a bit optimistic" doesn't go far enough. Even some excellent transpilers need manual intervention, and most transpilers I've used have weird edge cases that you can only catch through thorough unit testing. It sounds like the author has never transpiled a large code base into D before.
Re: How an Engineering Company Chose to Migrate to D
#75Earlier quoted context omitted.
Yeah, almost all the time its the inclination of an individual towards a new language that becomes the driving factor of migration rather than the actual shortcoming of current language.
Except that "the inclination of an individual towards a new language" is because of "the actual shortcoming of current language."
Re: How an Engineering Company Chose to Migrate to D
#76... and went bankrupt because of not being able to finding Engineers.
Patently false and disservice to software engineering. There are many companies (e.g. Weka.IO, Sociomantic, etc.) that hire C++ developers and have them happily write D code. I did work at Weka.IO for a while and never met a single D programmer that was unhappy. Ali Çehreli
My experience with the D community has been positive and people have been more than willing to help with problems or explaining quirks with Phobos or the D compiler.
Re: How an Engineering Company Chose to Migrate to D
#77While the article states that other languages were evaluated, it seems as though the project was motivated entirely by the author and the evaluation was just paying lip service to what was basically a foregone conclusion. Don't get me wrong, I like D from the small amount of playing I've done with it -- and maybe it is the best tool for their purposes -- but this doesn't strike me as an impartial evaluation. The need…
Rust does support nested functions that don't close over their environment, and has a separate syntax for closures which do, and closures can either move or borrow their captured variables. This makes it a bit harder to write a translator that produces good, idiomatic results; you could always use a closure that borrows the closed over variables, which I think matches the Pascal semantics, but that would mean the code would look a little odd for cases in which you had a nested function just to factor out some functionality and didn't need the closure.
fn main() {
let a = 10;
fn function() {
println!("Hi!");
// println!("a is {}", a)
// fails with:
// can't capture dynamic environment in a fn item
// use the `|| { ... }` closure form instead
}
let borrow_closure = || println!("a is: {}", a);
let move_closure = move || println!("a is still: {}", a);
function();
borrow_closure();
move_closure();
}Re: How an Engineering Company Chose to Migrate to D
#78I would love to be able to use D in my day job. It's a fantastic language that is both powerful and fun to work with. It's great to see companies embracing it.
Re: How an Engineering Company Chose to Migrate to D
#79This article seems to ignore two of the most important reasons to choose one language over another. Specifically: 1)Expressiveness in the given problem domain. Some languages are really great in particular niches. 2)Availability of devs. The ability to hire and retain a really great team makes or breaks projects, and while a smart, motivated dev can learn any language, it's definitely a factor in their choice to work…
0) Tool satisfaction > motivated dev can learn any language The key word is "motivated". That's why I'm an expert user of C++98 and D but I can't learn Go, Python, C++11, etc. > able to get really passionate devotees of the language That.
I lol'd at this
Re: How an Engineering Company Chose to Migrate to D
#80Earlier quoted context omitted.
And did they refuse the job because of D, low salary, not wanting to move to the Netherlands or some other reason? I could see a C++ dev giving this a try without hurting their career prospects, but C# devs are not exactly known for trying out non-mainstream technologies. If they switch for a couple of years MS will pump out a couple of frameworks and .NET programming languages. Fire and motion as such.
He wants to move to the Netherlands and he was quite explicit that he's apprehensive about D. It's true that C# programmers generally don't venture outside the mainstream.