sábado, 20 de abril de 2013

Types in programming languages

An Introduction To Programming Type Systems makes me think that so called high level languages can be thought as introducing a new kind o universal machine. A new model. Compare this with assembly languages: von Neuman machine, everything is a number. Or a set of bits. Or a representation in a code. It doesn't matter from the viewpoint of storage. What we do with a value is determined by the instruction. The process. Compare again with strictly functional languages. Everything is a lambda expression. Even numbers. Different models.

Feeling: richer models complicate the very very simple and effective model of universal machines like Turing, Von Neuman or Lambda.

sexta-feira, 19 de abril de 2013

Spreadsheet programming problems

Mishaps of using conventional spreadsheets for serious data analysis.

However, look at this post showing that Excel (or whatever spreadsheet) can be used successfully for an enormous variety of applications and be transformed in a powerful universal tool: Microsoft Excel is Everywhere

domingo, 14 de abril de 2013

Computer Science

Excellent post on Computer Science: Why Computer Science Matters. Defined as “The analysis of algorithms and processes”. So, it is not only about computers.

It is very very young. It is the future. "The future breakthroughs in science and technology will not be the new “social network”, or “web app”, it will be the insight that we get through the study of the theories discussed in Computer Science."

sábado, 13 de abril de 2013

Light ERP, in the cloud, configurable?

Is it really configurable? Let's have a look at NetSuite, small size ERP, competes with the big ones, Lary Ellison invested in it.

The Vietnam war of IT

It is the object x relational models. Hard to solve. Perhaps both models were too restrictive?

See also The Filesystem Test. What about having a simples model and build upon it?

To think about a different model: a universal machine. Turing? Von Neumann? Lambda calculus?

sexta-feira, 8 de março de 2013

Answer to ResearchGate question:

Which first language do you think is the best for learning programming techniques?

Francisco Frechina · Universitat Politècnica de València
I would bet for the mix of SML, Racket, Ruby and finally Haskell.

SML give you some notions like:
- Benefits of no mutation
- Algebraic datatypes, pattern matching
- Higher-order functions; closures
- Lexical scope
- Currying
- Syntactic sugar
- Parametric polymorphism and container types
- Type inference
- Abstract types

However, Racket shows interesting things like:
- Dynamic vs. static typing
- Laziness and streams
- Implementing languages, especially higher-order functions
- Macros
- Abstract types via dynamic type-creation
- Reflexion

On the other hand, for the OOP, Ruby would be great showing:
- Dynamic dispatch
- Pure object-orientation
- Multiple inheritance, interfaces, and mixins
- OO vs. functional decomposition and extensibility
- Subtyping for records, functions, and objects
- Class-based subtyping
- Subtyping
- Subtyping vs. parametric polymorphism; bounded polymorphism
- Reflexion in OOP

And after all this, I would introduce the lazyness of Haskell
and go deeper in all Haskell stuff.

Of course, this is just one (of many) way(s) for learning 
programming languages techniques


-----------------------

See also the classical: Teach Yourself Programming in Ten Years

sábado, 16 de fevereiro de 2013