Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

  > Ousterhout's dichotomy claims that there are two general categories of programming languages:
  > 
  > low-level, statically-typed systems languages
  > high-level, dynamic scripting languages
I understand that this may have seemed somewhat more true at the time it was originally stated, but it's not really been true since the '90s, and it's certainly not true now. What an odd thing to lean into in this day and age.


Are you saying the lines are blurred, or that there are more tiers of abstraction?


It's all shades of grey. Look at C#, it's a statically-typed high-level language which runs in a VM, but can also be compiled to native code. It has a massive standard library and can do all sorts of script-y things (see eg, top-level statements), but can also be tightly optimized to avoid GC allocations. You can mess with pointers in unsafe blocks.

The only thing it really can't do is kernel code.

Even C++ is incorporating more and more high-level constructs.


The general principal of alternating soft and hard layers is still a useful design tool. Even starting from silicon with the microcode emulation of the x86 instruction sets, kernel, syscall interface, building an app and exposing configuration, whether into Tcl, yaml, tool, .properties, json or xml, it’s very likely the consumers of complex software will want to configure its characteristics into a specific use case, but the implementation will be more general. Look at LLM as he ultimate soft layer.

Unless your team manages to never write YAML files.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: