Fair criticism of Jupyter Notebooks, and how hard it is to apply good software engineering: https://medium.com/@alexander.mueller/5-reasons-why-jupyter-notebooks-suck-4dc201e27086
It's hard to transition from code in a notebook to standalone program or reusable library in my experience. I think a less stateful design would really help.
miniblog.
Interesting article on the cognitive burden of programming language features, and how it incentivises designs that are similar to today's popular languages: https://tratt.net/laurie/blog/entries/programming_languages_and_the_speed_of_light.html
Rust is adding a new type for pointers to data that can't move! https://github.com/withoutboats/rfcs/blob/pin-and-move/text/0000-pin.md
This is useful in lots of situations: dealing with FFI/GC in other language runtimes, self references, amongst others.
GitLab continues to innovate with its integrated VCS, CI, CD solution. The latest release adds a ton of new features: https://about.gitlab.com/2018/03/22/gitlab-10-6-released/
It's particularly interesting to see them offer CI for GitHub projects. A clever way of getting users to try their offering!
Sometimes I wonder whether the term 'metaclass' scares off developers. Perhaps ClassFactory would be better.
Hack, the PHP dialect, uses a persistent hh_server so linting, finding definitions etc is fast.
Whilst this is a more common model today (language server protocol, YouCompleteMe), it's an interesting design considering PHP is based on short-lived processes.
I'm often surprised how many methods are in the Smalltalk base classes.
For example, Object has an at: message for integer access (like foo[123] in Python).
The Ludwig editor has been open sourced! https://www.adelaide.edu.au/news/news98662.html
Ludwig was an early (38 years ago) editor offering full screen editing, which was wildly computationally expensive next to contemporary line editors.
The power of a completely introspective, mutable computer system, and how it fundamentally affects PL design: https://news.ycombinator.com/item?id=16586347
It's always nice when other share their Emacs configuration with commentary! I discovered the google-this package from Jami Collinson's .emacs.d: https://jamiecollinson.com/blog/my-emacs-config/
It's amazing how little platforms change philosophy after creation.
The web started as an open project and remains so after wide deployment. It has not made Tim Berners-Lee rich.
Twitter, however, has a single owner, so its growth lead to an IPO and the founders making money.
It's so easy to misuse animations in UI design. A great post on tasteful, effective animation: https://uxdesign.cc/good-to-great-ui-animation-tips-7850805c12e5
Excellent diagnostics improvements landing in GCC 8: https://developers.redhat.com/blog/2018/03/15/gcc-8-usability-improvements/
Many languages have a notion of 'finalizers', but Racket has rather macabre 'will' functionality instead! https://docs.racket-lang.org/reference/willexecutor.html
Succinct and memorable, but 'will' is overloaded in English unfortunately.
Scheme and Common Lisp are much more different than I realised.
They have very different error handling models, object systems, approaches to documentation (e.g. use of docstrings), not to mention conventions on iteration, recursion and early termination.
Showing 2,851-2,865 of 7,508 posts