Ask HN: What programming language features or ideas do you wish were mainstream? - Austin_Conlon
======
zzo38computer
Macros (including both preprocessor and coprocessor kinds, and both hygienic
and unhygienic), goto, parameterized types (especially GADTs; what
restrictions apply depend on the program language), inline assembly code (and
perhaps also inline C, SQL, LLVM, or whatever is applicable to the particular
programming language in use), pattern matching, currying, byte arrays, lambda
functions, range limited types (for purposes of program optimization),
conditional compilations (by use of macros), evasive and non-evasive
exceptions, setjmp/longjmp, compile-time calculations and assertions, zero-
length arrays, non-Unicode mode, better bit manipulation operators, having
enough ropes to hang yourself and also a few more just in case, etc.

(Note, however, there are different program languages for different uses, and
some things may be not applicable, or only partially applicable, to some kind
of programming languages, I think.)

------
jolmg
Homoiconicity, like that found in Lisp or TCL. I have this small system
orchestration framework of sorts that I use to maintain my network-wide
configuration and send commands to multiple machines. I wish I didn't have to
work with code in quote-delimited strings and all the escaping involved. It
wouldn't be a problem in either Lisp or TCL.

------
Benjmhart
Pattern match, curry by default, function composition, metaprogramming through
custom operators, Sum types.

------
quickthrower2
Get rid of retched compulsory nullability and offer optionally optional types.
Could be via ADT style Maybe a = Just a | Nothing, or just a language feature
eg Mytype vs Mytype?

------
frou_dh
Sum-types and an exhaustive pattern-matching construct. It's borderline
criminal to design a language with a static type system in this century and
leave that out.

------
remilouf
Having used Erlang for a side project recently: pattern matching and
supervision trees.

------
karmakaze

      * Structural typing
      * Uniform access
      * Lazy evaluation

------
itcheeze
Software Transactional Memory like Clojure has

