ddribin + languages   178

Haskell for all: Advice for Haskell beginners
"This post summarizes advice that I frequently give to Haskell beginners asking how to start out learning the language."
programming  languages  haskell 
september 2018 by ddribin
N3 I/O Tips & Tricks
"Phew, I think that’s all the stuff that’s good-to-know when doing file IO in Nebula3. Please note that this was all about synchronous I/O. For asynchronous IO the IO::IoInterface interface-singleton is used, this simply launches a thread with its own thread-local IoServer, and IO operations are sent to the IO thread using Message objects (which in turn need to be checked for completion of the IO operation). It’s not much more complicated then synchronous IO. However I’m planning to do a few changes under the hood for asynchronous IO to enable better platform-specific optimizations in the future."
programming  languages 
september 2018 by ddribin
C Is Not a Low-level Language - ACM Queue
"In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades."
security  hardware  software  computer  languages  c  cpu 
september 2018 by ddribin
On Apple's Love Affair With Swift - Stefan Lesser
"I wanted to write a thoughtful article in response to Dominik Wagner’s “On my misalignment with Apple’s love affair with Swift”. During my research I realized, that Chris Lattner had already done this. Sort of. 17 months before Dominik published his piece."
programming  languages  swift  objc 
august 2018 by ddribin
Sized integer types and signedness, Stannum
"In the end of the day we are left with this horrible lot of types whose sizes are all different in different circumstances, and there is no any rule to choose one type over the other!"
programming  languages  c  rant 
april 2018 by ddribin
Chris Lattner on the Realm WWDC 2017 Swift panel – Ole Begemann
"Chris Lattner was a guest on a Swift panel during WWDC a few weeks ago. Here are some quotes I found interesting, edited for brevity and clarity. (Iʼm focusing on Chris Lattner here, but the other panelists — Kamilah Taylor, Kevin Ballard, and Jesse Squires — also had interesting things to say. You should really watch the whole thing if you can.)"
programming  languages  swift  interview 
july 2017 by ddribin
Six programming paradigms that will change how you think about coding
"This is not your grandma’s “functional programming will change the world!” blog post: this list is much more esoteric. I’d wager most readers haven’t heard of the majority of the languages and paradigms below, so I hope you have as much fun learning about these new concepts as I did."
programming  languages  advice 
june 2017 by ddribin
FP vs. OO
"I recently came across a tweet stating that there were no people who “defend OO vs. FP” that actually used FP in real projects. This is not the first time I came across statements like this (like in a blog posts portraying functional programmers as being higher on the “evolutionary ladder” than object-oriented programmers). Another claim I hear again and again is that “only Functional Programming can solve the problems of the modern age (like multi-core computing)”. I disagree with both claims."
programming  languages  oop  functional 
january 2017 by ddribin
Value SEMANTICS (not value types!)
"So a type has value semantics if the only way to modify a variable’s value, a variable that has the value semantic type, is through the variable itself. If the only way to modify a variable’s values is through the variable itself, it’s a variable with semantic type."
programming  languages  values  swift 
december 2016 by ddribin
GitHub - aoh/owl-lisp: a functional lisp
"Owl Lisp is a functional dialect of the Scheme programming language. It
is mainly based on the applicative subset of the R7RS standard."
programming  languages  lisp  scheme 
october 2016 by ddribin
inaka / Function Naming In Swift 3
"Let's start by understanding that function naming in Swift 3 behaves differently than in Swift 2."
programming  languages  swift 
october 2016 by ddribin
Modern Functional Programming: Part 2 – John A De Goes
"The modern architecture for functional programming, which I will henceforth call the onion architecture (because of its similarity to a pattern of the same name), involves structuring the application as a series of layers:"
programming  architecture  functional  languages  haskell 
september 2016 by ddribin
Swift 3.0 Unsafe World • meron@tech
"In this post I won't write how to migrate from Swift 2.x to 3.0 code, instead I will describe how the things works in 3.0 and will be comparing occasionally with C, since usually the main purpose of using unsafe references is to interact with low level C APIs."
programming  languages  swift 
september 2016 by ddribin
Call Me Fishmeal.: Pimp My Code, Book 2: Swift and Dynamism
"So if you want to blame anything, blame ARC, not Swift. It's still Lattner's bailiwick, so, you know, you don't even have to change who you're mad at."
programming  languages  objc  swift 
june 2016 by ddribin
How Elm Slays a UI Antipattern
"The nice thing about this data model in Elm is, the compiler will now force you to write the correct UI code. It will keep track of the possibility of "things not loaded" and errors, and force you to handle them all in the UI."
programming  design  patterns  languages  elm 
june 2016 by ddribin
Clojure, The Good Parts
"This is my heavily opinionated guide to what a "good" production Clojure app looks like in 2016."
programming  languages  clojure  tips 
may 2016 by ddribin
Introduction to Protocol-Oriented MVVM, with Natasha Murashev - Realm is a mobile database: a replacement for SQLite & Core Data
"Using value types over reference types in Swift is easier than ever before in Objective-C, making your code more expressive and less error-prone. However, many shy away from it once the need for shared behavior comes up, and they default to subclassing.

Through Natasha’s introduction to MVVM at do{iOS} 2015, learn how to use protocols and subclass no more! Natasha the Robot will walk you through her process of learning and using protocol-oriented programming to leverage Swift 2.0’s power and create beautiful, robust code."
programming  languages  swift 
april 2016 by ddribin
Joe Duffy - The Error Model
"Like many other things we did in Midori, a “whole system” approach was necessary to getting it right, taking several iterations over several years. I regularly hear from old teammates, however, that this is the thing they miss most about programming in Midori. It’s right up there for me too. So, without further ado, let’s start."
programming  languages  midori  error 
february 2016 by ddribin
The Jacob’s Ladder of coding — Medium
"Anecdotes and questions about climbing up and down the ladder of abstraction: Atari, ARM, demoscene, education, creative coding, community, seeking lightness, enlightenment & strange languages."
programming  embedded  languages  assembly  design 
december 2015 by ddribin
"Best practices for software development with Swift."
programming  languages  swift  advice 
september 2015 by ddribin
Sharp Regrets: Top 10 Worst C# Features | | InformIT
"Though C# has many great features, a handful could have been designed differently or omitted entirely, says Eric Lippert, who should know, because he served on the design committee. The co-author of Essential C# 6.0, Fifth Edition shares his personal top 10 (bottom 10?) C# design annoyances."
programming  languages  c# 
august 2015 by ddribin
inessential: Swift Protocols Question
"But when I imagined Apple’s next-generation language, I imagined a higher-level and less strict language — one that made it easier to get started as a developer, one that got rid of a bunch of the housekeeping we have to do as Objective-C developers."
programming  languages  swift 
june 2015 by ddribin
Swift 2 error handling in practice | Sunset Lake Software
"Beyond these minor issues, I think the new Swift 2 error system is a pragmatic way of ensuring safety around error handling while getting out of the way of the code you're writing. It handles all of the cases that I used Result<T,U> for. We've converted our Result-based Swift robotics control code over to this, and it is working great in practice."
programming  languages  swift 
june 2015 by ddribin
Vintage BASIC - Home
"Vintage BASIC is an interpreter for a programming language of days gone by. A time when every home computer had a simple language called BASIC, and every kid who owned a computer learned it. It is implemented in Haskell, a modern language very unlike BASIC."
programming  languages  basic  haskell 
february 2015 by ddribin
An Interview with Brad Cox, The man behind Objective-C | MacTech |
"Brad Cox is one of the co-creators of the Objective-C language, along with Tom Love. Objective-C was originally designed as a Smalltalk-like object system on top of the C language. NeXT started using Objective-C for its NeXTstep operating system and later, when Apple bought NeXT, it became the language du jour for writing Mac OS X and iPhone applications. Brad was nice enough to talk with me for an interview with MacTech."
programming  languages  objc  interview  personal 
october 2014 by ddribin
Functional Programming in Swift (Video) — Realm: a mobile database that replaces Core Data & SQLite
"In this presentation, Chris spoke about how to leverage the capabilities of Swift to do functional programming, not as a replacement for OOP, but rather as an additional tool in the toolbox."
programming  languages  swift  functional  video 
october 2014 by ddribin
A Warm Welcome to Structs and Value Types - Swift - objc.io issue #16
"If classes are so much more powerful than structs, why use structs? Well, it’s exactly their limited scope that makes them such flexible building blocks. In this article, you’ll learn how structs and other value types can radically improve your code’s clarity, flexibility, and reliability."
programming  languages  swift  immutability 
september 2014 by ddribin
Transducers are fundamental
"There are a few posts about them already, but I found the notion of transducers more elegant and natural than I have seen described. They simplify a lot of disparate clojure concepts and make it easier to write more performant code without any loss in generality. They are quite beautiful, actually, and I believe the concept is elemental, like function composition."
programming  languages  functional  clojure  transducer 
september 2014 by ddribin
Type Variance in Swift
"When dealing with Objective-C, we don’t give much thought to the meaning of “type”. We typically deal with primitives (integers, pointers, and typedefs thereof) or classes and their subclasses. Swift introduces a much richer type system, and I’m taking a break from looking at strategies for error handling to delve into the details of Swift types."
programming  languages  swift  covariance  contravariance 
august 2014 by ddribin
Why Go Is Not Good :: Will Yager
"This is a list of my chief complaints about Go. Some of these are mentioned frequently, and some are rarely discussed. I've also included some comparisons to both Rust and Haskell (which I consider to be good languages). This is to show that all the problems listed here have already been solved."
programming  languages  go  rust  haskell 
june 2014 by ddribin
"Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren't there. [...] Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax."
programming  languages  humor 
march 2014 by ddribin
Embrace Copying! | JLOUIS Ramblings
"I am inclined to say that the copying message passing in the BEAM VM is a cornerstone to the success of Erlang. Many of the safety, realtime and robustness guarantees hinges on the copying message passing design, together with data immutability and data persistence."
programming  languages  erlang  immutability 
october 2013 by ddribin
eholk/harlan · GitHub
"Harlan is a declarative, domain specific language for programming GPUs. This project serves primarily as a testbed for implementation and optimization techniques. The language is intentionally small, in order to simplify the process of exploring new analyses and optimizations."
programming  languages  scheme  gpu 
september 2013 by ddribin
New Scheme-Based GPU Programming Language Set to Turn Chips Into Supercomputers | DevOpsANGLE
"Harlan is largely developed to tap the potential of modern graphics processors. Harlan tries to make the task easier and more productive with the use of OpenCL or CUDA. The language itself compiles to OpenCL so that it can then be used by AMD’s Accelerated Parallel Processing SDK, NVIDIA’s CUDA Toolkit or Intel’s OpenCL SDK."
programming  languages  lisp  gpu  scheme 
september 2013 by ddribin
Crystal - Happy birthday, Crystal!
"Although its syntax is very similar to Ruby, there are many differences, and every day the distance is growing bigger. Here’s a summary of what we have in the language right now."
programming  languages  ruby 
september 2013 by ddribin
Edward C++Hands |   Bartosz Milewski's Programming Cafe
"There was so much talk about how not to use C++ that it occurred to me that maybe this wasn’t the problem of incompetent programmers, but that straightforward C++ is plain wrong. So if you just learn the primitives of the language and try to use them, you’re doomed."
programming  languages  c++  haskell  concurrency 
september 2013 by ddribin
Home — Shen
"Shen has one of the most powerful type systems within functional programming. Shen runs under a reduced instruction Lisp and is designed for portability."
programming  languages  functional  lisp 
september 2013 by ddribin
"Clojure is great, but sometimes I miss static typing. Haskell is great, but sometimes I miss Lisp's elegantly simple syntax. Shen is a splendid compromise, but I found myself wishing it came with Haskell's uncompromising purity and Standard ML's straightforward type system. BODOL is my attempt at crossbreeding the three, with Shen obviously the major influence."
programming  languages  lisp  haskell  clojure 
september 2013 by ddribin
Clozure CL
"Clozure CL (often called CCL for short) is a free Common Lisp implementation with a long history. Some distinguishing features of the implementation include fast compilation speed, native threads, a precise, generational, compacting garbage collector, and a convenient foreign-function interface."
programming  languages  common  lisp 
july 2013 by ddribin
Language Design Deal Breakers | A Random Walk Through Geek-Space
"Here’s my list of language design requirements, which if unmet would be deal breakers for me, what’s yours?"
programming  languages  static  types 
may 2013 by ddribin
Ten reasons not to use a statically typed functional programming language | F# for fun and profit
"Are you fed up with all the hype about functional programming? Me too! I thought I'd rant about some reasons why sensible people like us should stay away from it."
programming  languages  functional  static  types  type-inference  humor 
april 2013 by ddribin
Why Haskell Is Worth Learning
"Haskell isn’t my primary language at work (I mostly write C code for embedded systems), I’ve still found it incredibly useful. And even if I never used Haskell at work, I would still consider learning it as time well spent. So, why Haskell?"
programming  languages  functional  haskell 
march 2013 by ddribin
Unix system programming in OCaml
"This document is an introductory course on Unix system programming, with an emphasis on communications between processes. The main novelty of this work is the use of the OCaml language, a dialect of the ML language, instead of the C language that is customary in systems programming. This gives an unusual perspective on systems programming and on the ML language."
programming  languages  ocaml  unix 
february 2013 by ddribin
Room 101: Types are Anti-Modular
"Saying that types are anti-modular doesn’t mean that types are bad (though it certainly isn’t a good thing). Types have pros and cons, and this is one of the cons. Anyway, I should explain what I mean and how I justify it."
programming  languages  types 
february 2013 by ddribin
"I recently managed to create a disk image of what was apparently the last known copy of P-Lisp on planet earth. P-Lisp was a 1981 implementation of Lisp that ran on an Apple II. The disk image itself is here. The surprisingly painful story of what it took to get the image is here. And last but not least, documentation can be found here."
programming  languages  lisp  apple][ 
december 2012 by ddribin
"Compiled on x86 with gcc -Os it's about 17 KB for the interpreter and 4 KB the garbage collector (a cheesy, home-made, stop-world, precise collector -- although it can also use the classy, incremental, conservative Boehm-Demers-Weiser one in /usr/lib). That makes for about 21 KB of self-contained Lisp interpreter, including a rudimentary (but useful) FFI and macros, that runs at about 1 million funcalls per second on my Q9450."
programming  languages  lisp  interpreter  c 
december 2012 by ddribin
bandicoot - having fun with structured data
"Bandicoot is a programming system with a new set-based programming language, persistency capabilities, and run-time environment. The language is similar to general purpose programming languages where you write functions/methods and access data through variables. Though, in Bandicoot, you always manipulate data in sets using a small set-based algebra (the relational algebra)."
programming  languages 
october 2012 by ddribin
"Visi is an open source language that blends concepts from spreadsheets, scripting languages, functional languages such as Haskell and OCaml, and other systems. The goal of Visi is to be accessible for Excel power users, yet be “correct” such that runnable code should be substantially bug-free."
programming  languages  functional 
october 2012 by ddribin
"Tranquil is a programming language built on top of LLVM & the Objective-C Runtime. It aims to provide a more expressive & easy to use way to write Mac (and soon, iOS) Apps."
programming  languages  llvm  objc 
august 2012 by ddribin
Java 8: Now You Have Mixins? « Kerflyn's Blog
"Java 8 starts to emerge. It comes with a full new feature: functional programming with the lambda expressions. Here I’ll discuss about a feature that is part of the Lambda project (JSR-335): the virtual extension methods, also called public defender methods. This feature will help you to provide a default implementation for the methods that you have declared in your interfaces."
programming  languages  java  mixin 
august 2012 by ddribin
The Flying Frog Blog: Are functional languages inherently slow?
"Generational garbage collectors are great for languages that heap allocate a lot because they can be almost as fast as stack allocation. But they add substantial overheads elsewhere. Today's programs are increasingly using data structures like queues (e.g. for concurrent programming) and these give pathological behaviour for generational garbage collectors."
programming  languages  functional  performance  gc 
august 2012 by ddribin
Why OO Sucks by Joe Armstrong
"My principle objection to OOP goes back to the basic ideas involved, I will outline some of these ideas and my objections to them."
programming  languages  oop 
july 2012 by ddribin
What programming language or environment features are important to you? — Gist
"Many Cocoa programmers, myself included, want a more modern programming language than Objective-C, and a more modern programming environment than Cocoa. There's been some talk about what would better fit the bill, and engineers are ready to build that solution, but the question first needs to be answered – what are the most important problems to solve?"
programming  languages  objc 
july 2012 by ddribin
Functional and Object-Oriented Programming
"In my recent dalliances with FP I feel that I’ve been slowly “getting it”; in this post I’ll try to share some of these revelations. There is much to discuss on this topic, but I’ll focus on two high-level ideas here — how functional thinking aides in creating “mobile behavior” and declarative programs."
programming  languages  design  architecture  oop  functional 
july 2012 by ddribin
command center: Less is exponentially more
"Python and Ruby programmers come to Go because they don't have to surrender much expressiveness, but gain performance and get to play with concurrency.

C++ programmers don't come to Go because they have fought hard to gain exquisite control of their programming domain, and don't want to surrender any of it."
programming  languages  go  concurrency 
june 2012 by ddribin
The Algebra of Joy
"Abstract: Joy is a functional programming language which is not based on the application of functions to arguments but on the composition of functions. The language makes extensive use of combinators which perform the role of higher order functions. The algebra of Joy programs can be used to express formal properties of many first and second order functions without using variables ranging over values or over functions. Some of these properties are idempotency, inverses, converses, commutativity, symmetry, associativity, homomorphisms and distribution. The paper also gives several analogues of concepts from category theory."
programming  languages  functional 
june 2012 by ddribin
"Chibi-Scheme is a very small library intended for use as an extension and scripting language in C programs. In addition to support for lightweight VM-based threads, each VM itself runs in an isolated heap allowing multiple VMs to run simultaneously in different OS threads. The default language is an extended subset of the current draft R7RS Scheme, with support for all libraries."
programming  languages  scheme  c  lisp 
may 2012 by ddribin
[PDF] Deconstructing Java
"A presentation given at PLDE 2010 at IBM Haifa in April 2010.  A constructive critique of some features of the Java(tm) programming language with the benefit of hindsight." By Gilad Bracha, one of the creators of Java.
programming  languages  design  java  oop 
may 2012 by ddribin
20 Days of Clojure: Day 8 | Software Development, 20 Days of Clojure | Lou Franco: code, apps, and writings
"Today, I want to look at PersistentHashMap.java which is the implementation of clojure hash-maps. There are actually four implementations of the map interface (hash-map, sorted-map, struct-map, and array-map), but hash-map is what the reader will give you for when you build up a map with {}."
programming  languages  clojure  datastructures  hamt  trie 
april 2012 by ddribin
Julia, I Love You | (R news & tutorials)
"In my opinion, the new code in Julia is easier to read than the R code because Julia has fewer syntactic quirks than R. More importantly, the Julia code runs much faster than the R code without any real effort put into speed optimization."
programming  languages  statistics  julia 
april 2012 by ddribin
Introducing Sugarless - A Functional & Context Oriented way to write JavaScript | LakTEK
"Sugarless is a more expressive way to write functional and context-oriented programs in JavaScript."
programming  languages  javascript 
december 2011 by ddribin
[PDF] Out of the Tar Pit
"Complexity is the single major difficulty in the successful develop- ment of large-scale software systems. Following Brooks we distinguish accidental from essential difficulty, but disagree with his premise that most complexity remaining in contemporary systems is essential. We identify common causes of complexity and discuss general approaches which can be taken to eliminate them where they are accidental in nature."
programming  languages  functional  design 
december 2011 by ddribin
[PDF] Can Programming Be Liberated from the von Neumann Style?
"A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules. Unlike von Neumann languages, these systems have semantics loosely coupled to states--only one state transition occurs per major computation."
programming  languages  functional 
december 2011 by ddribin
Design By Contract with Clojure | Object Commando
"I just learned about the design by contract features of Clojure, and I’m impressed by the simplicity."
programming  languages  clojure  dbc 
september 2011 by ddribin
Scala School
"Scala school was started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. [...] This is the written material that accompanied those lectures."
programming  languages  scala  tutorial 
september 2011 by ddribin
Java's Comb-Over - raganwald's posterous
"This is as true of life as it is of software and hairlines. You cannot make all decisions based on short timeframes. Sometimes you have to do things that are important but not urgent."
programming  languages  java 
september 2011 by ddribin
ClojureScript and Node.js
"In this post we’ll demonstrate the mechanics of using ClojureScript with Node.js and see some programs written with this stack. The information here should provide a good starting point for you to explore using ClojureScript and Node.js in your own applications."
programming  languages  javascript  clojure  clojurescript  nodejs 
september 2011 by ddribin
If you gaze into nil, nil gazes also into you — giant robots smashing into other giant robots
"DON’T RETURN NIL, DON’T PASS NIL" nil isn't as bad on Objective-C as it is on other languages, but it still causes plenty of bugs when nil is not expected. I do wish there was a way to declare a variable as "not nil".
programming  languages  design  ruby  null 
august 2011 by ddribin
Why I love Lisp | Pablo's blog
Dare I say I'm getting interested in Lisp, especially Clojure.
programming  languages  lisp  clojure 
august 2011 by ddribin
Object Computing, Inc. - Java News Brief - March 2009
"The goal of this article is to provide a fairly comprehensive introduction to the Clojure programming language. A large number of features are covered, each in a fairly brief manner." A bit out of date, but interesting, nonetheless.
programming  languages  clojure  tutorial 
august 2011 by ddribin
Why Haskell is Kinda Cool
"As I progressed in the language, it seemed like much of Haskell consisted of smartass tricks to get around its own limitations. As if the designers dug themselves into a hole, then had a great time looking for overcomplicated solutions to problems they themselves created. Eventually, I looked at enough pieces to see a bigger picture. And what I saw blew my mind a little."
programming  languages  haskell 
august 2011 by ddribin
A peek past lambda
"Simply put, we believe the best thing we can do for Java developers is to give them a gentle push towards a more functional style of programming. We're not going to turn Java into Haskell, nor even into Scala. But the direction is clear."
programming  languages  java  functional 
august 2011 by ddribin
"Frink is a practical calculating tool and programming language designed to make physical calculations simple, to help ensure that answers come out right, and to make a tool that's really useful in the real world. It tracks units of measure (feet, meters, kilograms, watts, etc.) through all calculations, allowing you to mix units of measure transparently, and helps you easily verify that your answers make sense."
programming  languages  math 
august 2011 by ddribin
« earlier      
per page:    204080120160

related tags

3d  advice  algorithms  animation  apple][  architecture  assembly  basic  blog  book  books  c  c#  c++  children  cite:ldandersen  cite:rentzsch  clojure  clojurescript  cocoa  common  compiler  computer  concurrency  conditions  contravariance  covariance  cpu  datastructures  dbc  design  education  elm  embedded  erlang  error  exceptions  f#  food  forth  functional  games  gc  go  gpu  graphics  hacks  hamt  hardware  haskell  humor  immutability  interpreter  interview  ios  java  javascript  julia  jvm  languages  linux  lisp  llvm  lua  math  midori  mixin  monads  ms  nodejs  noop  null  objc  ocaml  oop  oss  osx  patterns  pdf  performance  perl  persistent  personal  pets  programming  python  rails  rant  ruby  rust  scala  scheme  security  smalltalk  software  squirrel  static  statistics  swift  testing  tips  tools  toread  transducer  trie  tutorial  type-inference  types  unix  values  video  web  windows  xml 

Copy this bookmark: