151 items tagged “programming”
2009
The Go Programming Language. A brand new systems programming language, designed by Robert Griesemer and Unix/Plan 9 veterans Rob Pike and Ken Thompson and funded by Google. Concurrency is supported by lightweight communicating processes called goroutines. “It feels like a dynamic language but has the speed and safety of a static language.”
Toiling in the data-mines: what data exploration feels like. Useful advice from Tom Armitage on the exploratory development approach required when starting to build a project against a large, complex dataset. Tips include making sure you have a REPL to hand and using tools like gRaphael to generate graphs against pretty much everything, since until you’ve seen their shape you won’t know if they are interesting or not.
I like Unicorn because it’s Unix. Ryan Tomayko analyses Unicorn, a new, pre-forking Ruby HTTP server that makes extensive use of Unix syscalls and idioms, and asks why dynamic language programmers don’t take advantage of these more often.
The Little Manual of API Design (PDF). A concise, highly readable guide to designing APIs that are “Complete, Easy to learn and memorize, lead to readable code, hard to misuse, and easy to extend”, based on lessons learnt over many years of development of the Qt framework.
Switching from scripting languages to Objective C and iPhone: useful libraries. Matt Biddulph collects together some very useful libraries for developers just getting started with Objective-C (though I’m not too keen on the title).
Coding Horror: A Scripter at Heart. Sigh. I cannot believe that the false distinction between “scripting” and “programming” is still being discussed.
Learning to Think Like A Programmer. Outstanding advice aimed mainly at journalists, but important to anyone who collects information for a living and might want it to be automatically processed at some point in the future.
The History of Python (via) “A series of articles on the history of the Python programming language and its community”, being compiled by Guido plus guest authors.
why’s potion. why’s latest project is a small, fast language (JIT to x86/x86-64) which seems to take ideas from Ruby, Lua, Python and who knows where else. Everything is based around objects, closures and mixins, with the delightful inclusion of scoped mixins so you can modify an object only within a certain module (hence avoiding Ruby’s action-at-a-distance problems).
2008
Blocks in Objective-C.
Closures are coming soon to Objective-C - interesting syntax, a regular curly brace block preceded by a caret ^{ ... }
.
The Universal Design Pattern. Steve Yegge presents a small book on key/value pairs and prototypal inheritance. “I call it the Universal design pattern because it is (by far) the best known solution to the problem of designing open-ended systems, which in turn translates to long-lived systems.”
Reia. The most common complaint I see about Erlang is the syntax. Reia is a Python-style scripting language (with a dash of Ruby) that runs on the Erlang virtual machine. Looks promising.
Core Techniques and Algorithms in Game Programming. Scarily detailed online book on games programming, including 2D and 3D graphics, AI, multiplayer network code, indoor and outdoor rendering, character animation and much more. UPDATE: Removed the original link, which appeared to be a pirated copy.
Good architectural layering, and Bzr 1.1. Mark Shuttleworth on the growing importance of plug-in architectures as an open source project evolves, as they allow new developers to release their own components without needing commit access to the project. Django is pretty good for this, but more hooks (and a faster event dispatch system) would be useful.
Naming twins in Python and Perl. Simple anagram problem solved in Perl and Python, with a bunch more solutions in the comments. The C# solution provides an interesting example of LINQ in action.
2007
Don't EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That's giving your intelligence much too much credit.
The D Language and Server Logs. Neat example of a simple D program for crunching log files.
Bit Twiddling Hacks. I’ve never been much of a bit twiddler, but I’ve always felt I should learn.
The Web Application Scale of Stupidity goes from OGF (One Giant Function) to OOP (Object Oriented Programming), like this: OGF ——– sanity ——— OOP
— Cal Henderson, paraphrased
Programming Nu (via) Interesting new programming language—Lisp style syntax, Ruby style semantics, built in Objective C bridge so you can access Cocoa APIs directly.
Large codebases are the problem, not the language they're written in. Find a way to break/decompose big codebases into little ones.
Want To Learn Web Programming? Write A Blog Engine. I couldn’t agree more. Weblogs are an ideal starter project—simple enough to get your head around, complex enough to teach you a bunch of important lessons, ideally suited for eating your own dog food.
An Introduction to Erlang. Erlang gets the ONLamp tutorial treatment from Gregory Brown.
Brad Neuberg’s Personal Research Agenda. Inspiring; lots of interesting problems to solve. I also liked the idea of moving to Thailand during a tech downturn and hacking on interesting projects while spending $200/month on living costs.
Erlang fits all the characteristics of an OO system, even though sequential Erlang is a functional language, not an OO language
19 Eponymous Laws Of Software Development. I normally loathe anything that’s bundled up as a numbered list, but this one is actually really useful.
Understanding Engineers: Feasibility. Charles Miller provides smart definitions of what programmers mean when they say “impossible”, “trivial”, “unfeasible”, “non-trivial”, “hard” and “very hard”.
Introduction to Abject-Oriented Programming. The best part is the comments, where several people completely fail to get the joke.
2006
A General Theory of Programming Language Relativity. Functional languages have clearer levels of indirection.
2004
Ned Batchelder: Interfaces. Ned on interfaces.