> Why are programming environments still so primitive? Because we as an industry made a strategic decision in the late 20th century to value run-time efficiency over all other quality metrics, a decision which has manifested itself in the primacy of C and its derivatives. Everything else has been sacrificed in the name of run time efficiency, including, notably, security. Development convenience was also among the co…
Shocked he mentions Visual Studio Code but not Visual Studio itself. The .net CLR has a lot of the features that he would want to enable the kind of interactive debugging (variable hovers, REPL) he talks about, and Visual Studio itself supports a lot of them. Personally going from doing C# development in VS2k15 to doing golang development in VSCode feels like going back in time.
Questions
251–260 of 493 posts
Re: Questions
#252> The Empire State Building was built in 410 days At least one reason is that we have substantially different safety regulations since we're not accepting of deaths on a project like that. 5 people died on that project. 11 died to build the Golden Gate. Original Bay Bridge? 24. They actually had a rule of thumb at the time: 1 death for every $1M spent on a project[1]. Any metric like that would be absolutely unaccept…
Vancouver’s “Second Narrows” bridge was built in the late 50s and completed in 3 years. Midway through the project a major accident killed 19 people. It was the result of an engineering error. In the mid 90s the bridge name was changed. It is now generally referred to as the “Ironworkers memorial bridge”. Anyone crossing that bridge since is constantly reminded of that engineering error. “Better safe than sorry” is r…
I think this is a cowardly and inaccurate belief and agree it is what it driving changes across all areas.
It is the institutional flaw of democracies and free markets. People (demand) are capable of acting irrationally and emotionally leading to a reduction of individual and public good.
Re: Questions
#253> Will end-user applications ever be truly programmable? Emacs, Smalltalk, Genera, and VBA embody a vision of malleable end-user computing: if the application doesn't do what you want, it's easy to tweak or augment it to suit your purposes. Today, however, end-user software increasingly operates behind bulletproof glass. This is especially true in the growth areas: mobile and web apps. I'll pick this one: end users b…
This is an interesting one to me. Will voice recognition at home coupled with AI allow people to start "programming". Currently home automation systems through something like Alexa are only listening to direct commands. Interesting follow-up functionality: * The capability for introspection. Alexa, who is home? Alexa, why are the lights on? Alexa, why are the lights not on? Especially the latter means advanced reason…
Re: Questions
#254Earlier quoted context omitted.
Do you believe we should make the national speed limit 25? If not, you're accepting that people will die needlessly, and that the value of a human life is not, in fact, infinite.
Is this the argument you want to plant your stake in the ground on as absurd? Because the modern debate in the tech community is "should people be allowed to operate motor vehicles at all?"
Re: Questions
#255> Why are there so many successful startups in Stockholm? Several reasons. First, you need to recognize that any Sweden-based startup will, when it gets to be known internationally, have a Stockholm-based office. So it's not about a city of 1 million inhabitants, it's a country of 10 million that's the true number here. As an example, I believe Spotify opened their original offices in both Stockholm and Göteborg more…
Good observations! You forgot one major thing. This goes for all of Finland, Sweden, Norway and Denmark. The winter is horribly dark and boring. (Unless you're super rich). Therefore most turn inwards, staying indoors, thinking deeply at problems, spending endless afternoons and nights on things. Be it software development, game development, car tuning, car engine work, engineering, knitting or just reading loads of…
Re: Questions
#256Earlier quoted context omitted.
Do you believe we should make the national speed limit 25? If not, you're accepting that people will die needlessly, and that the value of a human life is not, in fact, infinite.
Is this the argument you want to plant your stake in the ground on as absurd? Because the modern debate in the tech community is "should people be allowed to operate motor vehicles at all?"
They may be more like classic cars than regular vehicles at some point, though.
Re: Questions
#257> Is Bloom's "Two Sigma" phenomenon real? ... one-on-one tutoring using mastery learning led to a two sigma(!) improvement in student performance. When I tutored, I found students often had some misunderstanding, somewhere. So my task was to listen , to find that misunderstanding, so I could correct it. This "teaching" is listening, more than talking. The idea is they are lost, but to know what direction they need, I…
I think the One-on-One Tutoring things is something the AI current movement could make a difference. Everybody seems to be obsessed with building really cool stuff, but our teaching system is quite obsolete and could get better by adding smart systems. That said I must to add, that I am referring to teaching humans who are 12 years and older (IMHO young kids require physical interaction if you want to avoid psycholog…
Re: Questions
#258> Why are programming environments still so primitive? Because we as an industry made a strategic decision in the late 20th century to value run-time efficiency over all other quality metrics, a decision which has manifested itself in the primacy of C and its derivatives. Everything else has been sacrificed in the name of run time efficiency, including, notably, security. Development convenience was also among the co…
>> Why can't I debug a function without restarting my program? > Because you use C or one of its derivatives instead of Lisp or one of its derivatives. In Common Lisp you can not only debug a function without restarting your program, you can redefine classes without restarting your program. It is truly awesome. You should try it some time. There is no technical reason why it shouldn't be possible in C, if you are wil…
A super generalized description of a C function might check if a register contains a positive value. If so, it will then jump to address 0x42, which is a memory offset, which is the beginning of another function. Its near impossible to "swap" out what lies at 0x42 since that was defined at compile time and is included in a monolithic executable.
Looking at more dynamic languages, like C#, Java or LISP, they run on a virtual or abstracted machine instead of raw registers. This means that a similarly defined function will instead jump to whatever matches the requirement. That means that we could have a lookup table that says we should jump to a symbol of S42, and based on what we have loaded in memory, S42 resides at 0x42. Essentially, all functions are function pointers, and we can change the value the resides in that memory address in order to swap out implementations of whatever function maintains the same signature as the intended function. This is why one can make trivial changes to C# in visual studio while stopped at a breakpoint and have those changes applied to the running program. Instead of jumping to 0x42, we jump to 0x84 by "hotswapping" the value of the pointer we're about to jump into.
Obviously this isn't entirely the truth, there are a lot more nuances and it's a fair bit more complicated than this, but the idea should hold water.
Re: Questions
#259> Why are programming environments still so primitive? Because we as an industry made a strategic decision in the late 20th century to value run-time efficiency over all other quality metrics, a decision which has manifested itself in the primacy of C and its derivatives. Everything else has been sacrificed in the name of run time efficiency, including, notably, security. Development convenience was also among the co…
Re: Questions
#260Earlier quoted context omitted.
The GIL is not there because C. It's there because of refcounting and Python guaranteeing that many nontrivial operations are thread safe.
Yes, but refcounting is there because it is impossible to build a proper GC in portable C.