jm + languages   32

A Programmer’s Introduction to Unicode – Nathan Reed’s coding blog
Fascinating Unicode details -- a lot of which were new to me. Love the heat map of usage in Wikipedia:
One more interesting way to visualize the codespace is to look at the distribution of usage—in other words, how often each code point is actually used in real-world texts. Below is a heat map of planes 0–2 based on a large sample of text from Wikipedia and Twitter (all languages). Frequency increases from black (never seen) through red and yellow to white.

You can see that the vast majority of this text sample lies in the BMP, with only scattered usage of code points from planes 1–2. The biggest exception is emoji, which show up here as the several bright squares in the bottom row of plane 1.
unicode  coding  character-sets  wikipedia  bmp  emoji  twitter  languages  characters  heat-maps  dataviz 
19 days ago by jm
Regexp Disaster
Course notes from Gerald Jay Sussman's "Adventures in Advanced Symbolic Programming" class at MIT. Hard to argue with this:
The syntax of the regular-expression language is awful. There are various incompatable forms of the language and the quotation conventions are baroquen [sic]. Nevertheless, there is a great deal of useful software, for example grep, that uses regular expressions to specify the desired behavior.

Although regular-expression systems are derived from a perfectly good mathematical formalism, the particular choices made by implementers to expand the formalism into useful software systems are often
disastrous: the quotation conventions adopted are highly irregular; the egregious misuse of parentheses, both for grouping and for backward reference, is a miracle to behold. In addition, attempts to
increase the expressive power and address shortcomings of earlier designs have led to a proliferation of incompatible derivative languages.

(via Rob Pike's twitter:
regex  regexps  regular-expressions  functional  combinators  gjs  rob-pike  coding  languages 
july 2016 by jm
“You Can't Copyright Klingon” Means Paramount Is In Trouble
The Language Creation Society filed an amicus brief claiming that Klingon is a real language and therefore not subject to copyright. To reiterate: the fandom of Star Trek elevated a language invented in 1984 by Marc Okrand for Star Trek III: The Search for Spock to the point it is taught in colleges and spoken as a living language. So it isn’t Star Trek anymore: it is real. [...] the entire legal brief is impossible to reprint due to limits in our non-Klingon font system, but even the motion includes Klingon-translated passages that accuse Paramount of being “arrogant” and “pathetic”.
klingon  star-trek  languages  paramount  ip  copyright  law 
may 2016 by jm
The End of Dynamic Languages
This is my bet: the age of dynamic languages is over. There will be no new successful ones. Indeed we have learned a lot from them. We’ve learned that library code should be extendable by the programmer (mixins and meta-programming), that we want to control the structure (macros), that we disdain verbosity. And above all, we’ve learned that we want our languages to be enjoyable.

But it’s time to move on. We will see a flourishing of languages that feel like you’re writing in a Clojure, but typed. Included will be a suite of powerful tools that we’ve never seen before, tools so convincing that only ascetics will ignore.
programming  scala  clojure  coding  types  strong-types  dynamic-languages  languages 
november 2015 by jm
a regex-based, Turing-complete programming language. It's main feature is taking some text via standard input and repeatedly applying regex operations to it (e.g. matching, splitting, and most of all replacing). Under the hood, it uses .NET's regex engine, which means that both the .NET flavour and the ECMAScript flavour are available.

Reminscent of sed(1); see for an example Retina program
retina  regexps  regexes  regular-expressions  coding  hacks  dot-net  languages 
september 2015 by jm
'A programming language based on the one liners of Arnold Schwarzenegger'. Presenting hello.arnoldc:

TALK TO THE HAND "hello world"

(via Robert Walsh)
via:rjwalsh  c  arnold-schwarzenegger  one-liners  funny  coding  silly  languages 
july 2015 by jm
How We Moved Our API From Ruby to Go and Saved Our Sanity
Parse on their ditching-Rails story. I haven't heard a nice thing about Ruby or Rails as an operational, production-quality platform in a long time :(
go  ruby  rails  ops  parse  languages  platforms 
june 2015 by jm
Rust borrow and lifetimes
How Rust avoids GC overhead using it's "borrow" system:
Rust achieves memory safety without GC by using a sophiscated borrow system. For any resource (stack memory, heap memory, file handle and so on), there is exactly one owner which takes care of its resource deallocation, if needed. You may create new bindings to refer to the resource using & or &mut, which is called a borrow or mutable borrow. The compiler ensures all owners and borrowers behave correctly.
languages  rust  gc  borrow  lifecycle  stack  heap  allocation 
november 2014 by jm
an [XPath-style] query language for JSON. You can extract and transform elements from a JSON document.

Supported by the "aws" CLI tool, and in boto.
aws  boto  jmespath  json  xpath  querying  languages  documents 
november 2014 by jm
a new "types for Javascript" framework, from the team behind Angular.js -- they plan to "harmonize" it with TypeScript and pitch it for standardization, which would be awesome.

(via Rob Clancy)
via:robc  atscript  javascript  typescript  types  languages  coding  google  angular 
october 2014 by jm
Alex Payne — Thoughts On Five Years of Emerging Languages
One could read the success of Go as an indictment of contemporary PLT, but I prefer to see it as a reminder of just how much language tooling matters. Perhaps even more critical, Go’s lean syntax, selective semantics, and cautiously-chosen feature set demonstrate the importance of a strong editorial voice in a language’s design and evolution.

Having co-authored a book on Scala, it’s been painful to see systems programmers in my community express frustration with the ambitious hybrid language. I’ve watched them abandon ship and swim back to the familiar shores of Java, or alternately into the uncharted waters of Clojure, Go, and Rust. A pity, but not entirely surprising if we’re being honest with ourselves.

Unlike Go, Scala has struggled with tooling from its inception. More than that, Scala has had a growing editorial problem. Every shop I know that’s been successful with Scala has limited itself to some subset of the language. Meanwhile, in pursuit of enterprise developers, its surface area has expanded in seemingly every direction. The folks behind Scala have, thankfully, taken notice: upcoming releases are promised to focus on simplicity, clarity, and better tooling.
scala  go  coding  languages 
september 2014 by jm
Collection Pipeline
a nice summarisation of the state of pipe/stream-oriented collection operations in various languages, from Martin Fowler
martin-fowler  patterns  coding  ruby  clojure  streams  pipelines  pipes  unix  lambda  fp  java  languages 
july 2014 by jm
BPF - the forgotten bytecode
'In essence Tcpdump asks the kernel to execute a BPF program within the kernel context. This might sound risky, but actually isn't. Before executing the BPF bytecode kernel ensures that it's safe:

* All the jumps are only forward, which guarantees that there aren't any loops in the BPF program. Therefore it must terminate.
* All instructions, especially memory reads are valid and within range.
* The single BPF program has less than 4096 instructions.

All this guarantees that the BPF programs executed within kernel context will run fast and will never infinitely loop. That means the BPF programs are not Turing complete, but in practice they are expressive enough for the job and deal with packet filtering very well.'

Good example of a carefully-designed DSL allowing safe "programs" to be written and executed in a privileged context without security risk, or risk of running out of control.
coding  dsl  security  via:oisin  linux  tcpdump  bpf  bsd  kernel  turing-complete  configuration  languages 
may 2014 by jm
Why Disqus made the Python->Go switchover
for their realtime component, from the horse's mouth:
at higher contention, the CPU was choking everything. Switching over to Go removed that contention for us, which was the primary issue that we were seeing.
python  languages  concurrency  go  threading  gevent  scalability  disqus  realtime  hn 
may 2014 by jm
Transitioning to Scala
Advice from a developer who helped rebuild with Scala and Play

This is really good advice.
walmart  scala  java  languages  coding  relearning  play  akka 
april 2014 by jm
A cautionary tale about building large-scale polyglot systems
'a fucking nightmare':
Cascading requires a compilation step, yet since you're writing Ruby code, you get get none of the benefits of static type checking. It was standard to discover a type issue only after kicking off a job on, oh, 10 EC2 machines, only to have it fail because of a type mismatch. And user code embedded in strings would regularly fail to compile – which you again wouldn't discover until after your job was running. Each of these were bad individually, together, they were a fucking nightmare. The interaction between the code in strings and the type system was the worst of all possible worlds. No type checking, yet incredibly brittle, finicky and incomprehensible type errors at run time. I will never forget when one of my friends at Etsy was learning Cascading.JRuby and he couldn't get a type cast to work. I happened to know what would work: a triple cast. You had to cast the value to the type you wanted, not once, not twice, but THREE times.
etsy  scalding  cascading  adtuitive  war-stories  languages  polyglot  ruby  java  strong-typing  jruby  types  hadoop 
march 2014 by jm
On Scala
great, comprehensive review of the language, its pros and misfeatures, from Bill de hOra
scala  languages  coding  fp  reviews 
june 2013 by jm
To our knowledge, Ked is the first scripting language to emerge from The People's Republic of Cork. Below is an account of what we know so far about the mysterious Corkonian language. Any suggested updates or contributions are encouraged.

coding  cork  jokes  funny  like  languages  programming 
april 2013 by jm
Can regular expressions parse HTML?
'a summary of the main points:
The “regular expressions” used by programmers have very little in common with the original notion of regularity in the context of formal language theory.
Regular expressions (at least PCRE) can match all context-free languages. As such they can also match well-formed HTML and pretty much all other programming languages.
Regular expressions can match at least some context-sensitive languages.
Matching of regular expressions is NP-complete. As such you can solve any other NP problem using regular expressions.'
compsci  regexps  regular-expressions  programming  np-complete  chomsky-grammar  context-free  languages 
february 2013 by jm
Programming Language Checklist
'You appear to be advocating a new:
[ ] functional [ ] imperative [ ] object-oriented [ ] procedural [ ] stack-based
[ ] "multi-paradigm" [ ] lazy [ ] eager [ ] statically-typed [ ] dynamically-typed
[ ] pure [ ] impure [ ] non-hygienic [ ] visual [ ] beginner-friendly
[ ] non-programmer-friendly [ ] completely incomprehensible
programming language. Your language will not work. Here is why it will not work.'
humor  programming  funny  coding  languages 
february 2013 by jm
The things make got right (and how to make it better)
jgc provides a good demonstration of how a general-purpose programming language tends to make a crappy DSL -- specifically Rakefiles
dsl  build  make  coding  jgc  languages  configuration  makefiles  rake  ruby  from delicious
january 2011 by jm
REPLs suck, I want something block oriented
good opinion piece; I agree, REPL isn't a usable approach for block-oriented languages
languages  repl  programming  ruby  hacking  coding  block-oriented  from delicious
july 2010 by jm
Mea Culpa
'Programming is an embarrassment compared to other fields of engineering and design. Our mainstream culture is one of adolescent self-indulgence. It is like something from Gulliver’s Travels, with the curly-bracketeers vs. the indentationites vs. the parenthesesophiles. The only thing that everyone seems to agree upon is how stupid all the other programmers are. Try googling “stupid programmers”. We have met the enemy, and he is us.' Fantastic post via Jan Lenhardt
via:janl  coding  programming  software  philosophy  languages  lisp  elitism  from delicious
may 2010 by jm
Where Tcl and Tk Went Wrong
from David Welton. what, the lack of support for GNOME UI standards was *deliberate*? bad choice if so
gnome  david-welton  languages  via:fanf  scripting  gui  tk  tcl  from delicious
march 2010 by jm
Phishing in Irish
someone has gone to the trouble of translating the 'Hang Seng Bank' phish to Gaeilge. I would surmise that some phisher has a table of CCTLD-to-language mappings and is pasting their text into Google Translate before spamming their .ie address list. If only they knew how few people can read it!
irish  gaeilge  funny  languages  translation  from delicious
february 2010 by jm
Google employees now discouraged from using Python for new projects
'You have to balance
Python's strengths with its weaknesses: your engineers may be more
productive using Python, but if they have to work around more
platform-level performance/scaling limitations as volume increases, do
you come out ahead? etc.'
google  performance  scalability  python  unladen-swallow  languages  via:preddit  from delicious
november 2009 by jm
'an online compiler/interpreter, and a simple collaboration tool. It's a pastebin that executes code for you. You paste your code, and codepad runs it and gives you a short URL you can use to share it.' supports C, C++, D, Haskell, Lua, OCaml, PHP, Perl, Python, Ruby, Scheme, and Tcl code; isolated by a geordi-based supervisor, in turn running inside a firewalled virt, in turn running inside a firewalled dom0. nice work!
codepad  vm  jails  infrastructure  security  via:waxy  c  languages  programming  sandbox  pastebin 
august 2009 by jm

related tags

adtuitive  akka  allocation  angular  arnold-schwarzenegger  atscript  aws  block-oriented  bmp  borrow  boto  bpf  bsd  build  c  cascading  character-sets  characters  chomsky-grammar  clojure  codepad  coding  combinators  compsci  concurrency  configuration  context-free  copyright  cork  data  dataviz  david-welton  disqus  documents  dot-net  dsl  dynamic  dynamic-languages  elitism  emoji  etsy  fp  functional  funny  gaeilge  gc  gevent  gjs  gnome  go  golang  google  gui  hacking  hacks  hadoop  heap  heat-maps  hn  humor  infrastructure  inheritance  ip  irish  jails  java  javascript  jgc  jmespath  jokes  jruby  json  kernel  klingon  lambda  languages  law  lifecycle  like  linux  lisp  make  makefiles  martin-fowler  microsoft  mit-license  mono  mysql  np-complete  one-liners  oo  open-source  ops  paramount  parse  pastebin  patents  patterns  performance  philosophy  pipelines  pipes  platforms  play  polyglot  programming  python  querying  rails  rake  rants  realtime  regex  regexes  regexps  regular-expressions  relearning  repl  retina  reviews  rob-pike  ruby  rust  sandbox  scala  scalability  scalding  scripting  security  silly  software  stack  star-trek  static-typing  statistics  streams  strong-types  strong-typing  swpats  tcl  tcpdump  threading  tk  traits  translation  travis-brown  turing-complete  twitter  types  typescript  unicode  unix  unladen-swallow  via:fanf  via:janl  via:oisin  via:preddit  via:rjwalsh  via:robc  via:waxy  vm  walmart  war-stories  wikipedia  xpath 

Copy this bookmark: