recentpopularlog in

mcherm : languagedesign   302

« earlier  
It’s not wrong that "🤦🏼‍♂️".length == 7
How should a language measure the length of a string? Count UTF-8 units? Count UTF-16 units? UTF-32? Grapheme clusters?
via:reddit  languagedesign  unicode  programming 
7 days ago by mcherm
Delegated Inheritance
This is part 3 of a 5-part series analyzing inheritance in language design. It makes the case for a particular alternative which boils down to interfaces and composition plus some syntax sugar.
languagedesign  programming  via:reddit 
19 days ago by mcherm
J can look like APL or English
A case is made that the concise difficult to read format of J (or APL) actually works better then English language keywords.
programming  languagedesign  via:HackerNews 
29 days ago by mcherm
One Program Written in Python, Go, and Rust – Nicolas Hahn
He compares a real (but simple) program in Python, Go, and Rust. Rust has more bare-metal speed. Python is more readable and faster to code (also it uses a library, but he considers that typical and thus fair).
languagedesign  programming  programminglanguages  golang  rust  python  via:HackerNews 
10 weeks ago by mcherm
Python Software Foundation News: Amber Brown: Batteries Included, But They're Leaking
A debate over the balance between including functionality in the standard library versus making it available in a language-standard library repository.
python  languagedesign  via:HackerNews 
may 2019 by mcherm
The Programming Language Conundrum
Lisp or smalltalk have a reputation for being super-productive. But it appears that this only works for extremely small development teams.
programming  languagedesign  via:HackerNews 
march 2019 by mcherm
Jsonnet - The Data Templating Language
A programming language specifically designed for building JSON templates.
languages  languagedesign  programming  template 
february 2019 by mcherm
Not everything is an expression
Incredibly well written essay on a weakness in Lisp's macro system. Includes features like letting the reader switch languages.
programming  languages  languagedesign  lisp  macros  via:reddit 
december 2018 by mcherm
Asterisks in Python: what they are and how to use them - Trey Hunner
Useful summary of the syntax for interpolating values into a list, dict, argument list, etc.
programming  python  languagedesign 
december 2018 by mcherm
JavaScript: keep digging
Cartoon making fun of JavaScript's ever-deeper mess.
javascript  programming  languagedesign  funny  cartoon 
august 2018 by mcherm
Wren - a simple little scripting language
A programming language. A lot of it seems well-designed, but I also see lots of places where I think it made simple, obvious design errors.
language  languagedesign  programming  via:HackerNews 
april 2018 by mcherm
For mathematicians, = does not mean equality – Math ∩ Programming
Programming languages often use "=" for assignment; mathematicians use it oddly too.
math  languagedesign  programming  via:HackerNews 
april 2018 by mcherm
Frequent programmers are those who spend many hours a day immersed in the language. They have deep knowledge and a willingness to learn arcane procedures and tools. Good languages should support infrequent developers.
programming  softwaredevelopment  languagedesign  via:HackerNews 
march 2018 by mcherm
I Slipped on JavaScript's Banana Peel - Bocoup
Changed the JavaScript grammar definition to make it more readable and accidentally made it need >1 token of lookahead (which means some analysis tools stop working). Reverted.
javascript  standards  programming  via:reddit  languagedesign 
december 2017 by mcherm
Splitting Strings
Splitting an empty string could sensibly return an empty list or a list of an empty string. Different languages follow different conventions.
programming  languagedesign  via:reddit 
october 2017 by mcherm
Diminishing returns of static typing
Strong typing is good for error reduction; weak typing is faster to write. The ideal strength of typing varies by personality and perhaps by project.
programming  via:HackerNews  typing  languagedesign 
october 2017 by mcherm
The Design of Stanza's Optional Type System
Stanza is a language that offers *optional* types. This is an incredibly well-written description of what typing is and how it works in Stanza.
types  programming  languagedesign  stanza  via:HackerNews 
june 2017 by mcherm
Mutable vals in Kotlin
In Kotlin, when an object property is declared to be a val (not var) it has only a getter, no setter, so it is read-only. But the getter MAY return different values each time, so val isn't necessarily immutable.
languagedesign  programming  kotlin  via:HackerNews 
may 2017 by mcherm
Consider syntax with significant indentation · Issue #2491 · lampepfl/dotty · GitHub
Scala will probably introduce indentation to signify block structure. Here's why.
languagedesign  scala  via:reddit 
may 2017 by mcherm
Graal & Truffle — Medium
A piece describing a tool for building programming languages quickly and easily.
programming  languagedesign  languages  via:HackerNews 
july 2016 by mcherm
Asciinema 1.3 Switches from Go Back to Python
Here's why they switched BACK to Python from Go. Mostly just that it's a higher level language and they didn't need threading.
python  golang  languagedesign  via:HackerNews 
july 2016 by mcherm
How much faster is coding in newer languages?
How much did programming language innovations speed up programming? Uncle Bob answers, and I agree broadly with his assessment.
programming  softwaredevelopment  languages  languagedesign  via:reddit 
may 2016 by mcherm
Comparing Python enums to Java, was: How much sanity checking is required for function inputs?
Java enums are better than Python enums because they use the enum identity for comparison, not the values in fields in the enum.
languagedesign  python  java  programming 
april 2016 by mcherm
JEP 286: Local-Variable Type Inference
Proposal to allow variables to be declared in Java without explicitly specifying the type.
languagedesign  java  via:HackerNews 
march 2016 by mcherm
Why Rust's ownership/borrowing is hard
Some specific examples of how rust's strict approach to "borrowing" of references can make straightforward-looking things fail to compile. Also, some about the programming style to work around it.
rust  via:HackerNews  programming  languagedesign 
february 2016 by mcherm
All About Eve |
Some thoughts (and a LOT of experiments) on designing a tool that is nothing like a programming language.
programming  languagedesign  eve  via:HackerNews 
january 2016 by mcherm
Laurence Tratt: Debugging Layers
If you're going to build a language that supports creating DSLs then here's a trick to make debugging in the DSLs easier by improving the information available in the stack traces.
languagedesign  via:LaurenceTratt 
january 2016 by mcherm
Mistaeks I Hav Made: Early Impressions of Kotlin
A review of Kotlin. Matches the sense I got from reading the language documents. I'm not that impressed.
languagedesign  kotlin  via:reddit 
january 2016 by mcherm
What can programming language research learn from the philosophy of science?
Applying the philosophy of science to the domain of programming language design.
languagedesign  philosophyOfScience 
december 2015 by mcherm
The End of Dynamic Languages
The author just discovered what's great about type systems. Unfortunately he makes the attribution error of assuming that everybody else in the world is at exactly the same point in this discovery as he is.
programming  languagedesign  types  via:reddit 
november 2015 by mcherm
Counting Things in Python: A History - Trey Hunner
A wonderful exploration of how the Python language has evolved, of what "pythonic" (or good, readable style) is, and of the variety of different styles all done by carefully considering a single simple (and common) problem.
python  via:HackerNews  programming  languagedesign 
november 2015 by mcherm
Java 8’s new Optional type is worthless — Medium
Java's new "Optional" type doesn't prevent the option itself from being null, and it doesn't provide a compiler-guaranteed check that you are using it safely. So they should have just improved support for static code checkers instead.
via:HackerNews  programming  java  languagedesign 
october 2015 by mcherm
The programming language by JetBrains. Reading through it I conclude that it is a "slightly better syntax for Java", with few fundamental differences but lots of little improvements.
programming  languagedesign  languages  via:HackerNews  kotlin  java 
july 2015 by mcherm
A wish list | David R. MacIver
A list of programming language features by David MacIver which I really agree with.
languagedesign  programming  DavidMacIver  via:DavidMacIver  mypostings 
july 2015 by mcherm
JJinuxLand: Go: A Surprising Edge Case Concerning append and Slice Aliasing
Language failure: appending can perform a realloc if out of room BUT that doesn't update other references to the same mutable object. Clear mutable or clear immutable semantics please, never a mix of the two.
golang  languagedesign  immutable 
may 2015 by mcherm
On Haskell, Ruby, and Cards Against Humanity | David R. MacIver
An insightful comment on how the community around a language affects its usefulness.
languagedesign  via:DavidMacIver  DavidMacIver 
may 2015 by mcherm
PHP: md5('240610708') == md5('QNKCDZO') | Hacker News
It's a flawed (type-converting) equality comparator in PHP. Lurking security flaw.
security  programming  languagedesign  via:HackerNews 
may 2015 by mcherm
Less is more: language features
A long list of features that language designers should consider REMOVING from any new language they design.
programming  languagedesign  via:HackerNews 
april 2015 by mcherm
Why `typeof` is no longer "safe" - ECMAScript 6 - ES Discourse
The one thing that used to always be safe to do in JavaScript is no longer safe.
javascript  languagedesign  via:reddit 
january 2015 by mcherm
Why Why Functional Programming Matters Matters
Some thoughts on how a language can be better if it helps separate concerns, even if that makes it strictly less powerful.
programming  languagedesign  via:reddit 
december 2014 by mcherm
Why I Don't Like Akka Actors
Akka actors in Scala are not composable. Their interesting behavior is not checked by the type system.
concurrentprogramming  scala  languagedesign 
october 2014 by mcherm
Rust lifetimes: Getting away with things that would be reckless in C++ | Random Hacks
The language "rust" supports a compiler-enforced declaration that one object's lifetime exceeds another's. This is illustrated with short-lived substrings.
programming  rust  languagedesign  via:HackerNews 
september 2014 by mcherm
My history with Forth & stack machines
A wonderful tale about all the power of Forth (an assembly language you can use; you can redefine the language itself) and all the dangers (you almost can't implement MD5 because it uses 32 bit quantities and we only support 18 bits).
languagedesign  programming  forth  via:HackerNews  history 
august 2014 by mcherm
Why Go Is Not Good :: Will Yager
A review of flaws in Go: no way for collections to be typed, no operator overloading nor stuff like iteration for user-defined types, null pointers allowed, lacks Hindley-Milner type inference, no immutablesm no pattern matching.
golang  languagedesign  via:reddit 
june 2014 by mcherm
Smashing Swift
Three things he tried in Swift that weren't possible.
swift  programming  languagedesign  via:HackerNews 
june 2014 by mcherm
Ada - - The Home of Ada
About Ada -- how it was designed and why it didn't become popular.
via:HackerNews  languagedesign  languages 
may 2014 by mcherm
Jim's Blog: Six programming paradigms that will change how you think about coding
He mentions languages where concurrent execution is the default, rich type systems that can even encode the values of the variables at runtime, Forth/Joy, declarative (eg: Prolog), and two I didn't get: "Symbolic Programming" and "Knowledge-based Programming".
languagedesign  programming  via:HackerNews  languages 
april 2014 by mcherm
Python 3.4 single dispatch, a step into generic functions | Julien Danjou
The latest version of Python added support for single-dispatch generic functions. This article explains generic functions using CLOS and then uses that to explain the new Python functionality.
python  lisp  programming  languagedesign  programminglanguages  via:HackerNews  CLOS 
march 2014 by mcherm
Why Dart should learn JSON while it’s still young | Max Horstmann's Coding Blog
The language Dart should add really strong and deep support for JSON because it's the standard for the web.
dart  JSON  languagedesign  via:HackerNews 
february 2014 by mcherm
How Class based Programming Sucks
A really good analysis of the weaknesses of object oriented programming. (1) it encourages mutable state, (2) it makes functions not first-class objects, (3) no "option" types where a type can be one of several other types.
via:HackerNews  programming  languagedesign  oop 
december 2013 by mcherm
Java: easy to read; Scala: expressive of high level concepts
Java restricts how you can express things which means it's always low level but easy to jump into someone's code. All specialists create a jargon which is concise but difficult for outsiders. Scala supports "jargons" for projects: better high-level expressivity but difficult to read for outsiders to the project.
scala  languagedesign  java  programming  via:HackerNews 
december 2013 by mcherm
fogus: Groovin’ with Scala
A simple program in Java and step-by-step showing how it can be much simpler and shorter (and more readable) in Scala.
languagedesign  programming  scala 
october 2013 by mcherm
JSFuck - Write any JavaScript with 6 Characters: []()!+
A minimal set of characters that can express any JavaScript. As a possible use: filters attempting to block unsafe JavaScript are no longer feasible.
programming  javascript  languagedesign  languages  security 
september 2013 by mcherm
Headius: On Languages, VMs, Optimization, and the Way of the World
If the types of values (not variables) are static, dynamic optimization can be pretty good. Some languages do this, others don't.
via:HackerNews  virtualmachine  programming  languagedesign 
august 2013 by mcherm
Growing a Language - by Guy Steele
A talk using words of one syllable and defining others to show how you can extend a language. Recommends designing programming languages so they are extensible.
programming  languagedesign  via:HackerNews 
may 2013 by mcherm
PEP 435 -- Adding an Enum type to the Python standard library
They FINALLY figured out how to add enums to python, and the design is (as you would expect) pretty good.
languagedesign  python  programming  via:reddit 
may 2013 by mcherm
On F# code readability
F# can be readable, but you need to spell things out well and don't split up files too small. Also, the fact that the files must be compiled in a certain known order turns out to be USEFUL for understanding because it gives a "starting point" for reading the code.
via:reddit  F#  languagedesign  programming 
march 2013 by mcherm
Why Python, Ruby, and Javascript are Slow // Speaker Deck
The author of Topaz (a Ruby implemented in PyPy's rPython) explains that it is NOT fundamental issues like dynamic typing and flexible fields for objects that make dynamic languages slow, it's things like not specifying list size before allocating and creating intermediate String objects.
pypy  performance  languagedesign  languages  python  programming  via:HackerNews 
march 2013 by mcherm
Scala Try/Catch Lifting Proposal: One Div Zero
Java has try-catch as a statement, Scala has it as an expression. That means in Scala it can be embedded in the middle of something complicated, like a call to a function. Here is discussion of two different ways of implementing that on the JVM.
languagedesign  scala  programming 
february 2013 by mcherm
« earlier      
per page:    204080120160

Copy this bookmark:

to read