In the current economical climate, people’s anger towards capitalism is well known. Be it from having lost money to banks, or be it from having read left-leaning publications, it is hard to be an open supporter of liberty and capitalism at this time. I would like to discuss my views, the opposing views, and the views in the middle.

In brief, I hold man’s liberty to be of the highest priority in human relations. I believe that there is no shame in striving for one’s own beliefs, and I believe that no man should cater for another, against his own will. A point to be made here is that this should apply for everyone. The opposing view is that man’s equal access to resource is to be held as the highest priority. In one we have liberty, in the other we have resources. I cannot let myself hold a man wrong who fully adheres to the opposing view.

Of course, there is the view in the middle. That which our current Western society has named as liberalism. I believe that it is a complete misnomer, but I can’t comment on where it originated. People who profess to be liberals, will frequently express anger towards selfish capitalists who do not care for the needs of others. I find two things wrong with this attitude. Firstly, the word “selfish” is used in the sense that it is bad to be selfish, in other words, that it is bad to strive for one’s own needs. We must remember that it is from competition that products are improved, and that new products arise, but I don’t want to discuss this. My second second contention is that liberals, while claiming that it is bad for selfish capitalists not to care for the needs of others, forget that these selfish capitalists probably do care about the less able people’s right to their own property, and will not demand that they surrender their property to satisfy their own arbitrarily asserted rights, such as education, a place to live, and healthcare.

I do not believe that it is correct for a liberal to claim that a libertarian is immorral for not catering to other people’s so-called rights. In this, a “liberal” supports the theft of property, in the name of another’s right. Firstly, has this liberal forgotten that some people believe that a person’s property is that person’s right, and secondly, if he does not believe that property is a right, who is he to name a person immorral for not adhering to his self-declared rights? Surely, for any reasonable person to declare another as immorral, his set of rights should apply to everyone, irrespective of a person’s conditions and situation. The issue that I have with liberals’ attitude is that their set of morals is half-way. They hold that humans should have certain rights; but these rights can only be satisfied at the expense of other rights, namely rights such as the right to property, and the right to self-defence, which really follows from one’s self being one’s own property. Of course, I must point out that the right to property is a right that I, myself, declare to hold for everyone, but this is at an extreme that makes no exceptions, the other extreme being communism, that is, equal resources without exception.

I would like any liberals reading this, to reconsider what they think of a man who is against stealing from one to provide education to another. I would like liberals to realise that nothing is free, that resources given by the state to one person had to be coerced from another. I would like it that liberals, after having realised this, do not claim libertarians to be immorral.

I decided to have a summer job which was relevant to my studies, to use my time well. Believe it or not, there are companies out there who use Lisp as their main programming-language. I would like to illustrate what I liked about programming in Lisp, and how it relates to Web-based applications.

Lisp is generally seen as a very esoteric language. The definition of the word “esoteric”, in the American Heritage Dictionary, is “Intended for or understood by only a particular group: an esoteric cult.”. Neither is Lisp intended for one certain group of people (maybe apart from computer-programmers themselves), nor is it understood by one group which can be defined (apart from Lisp-programmers). One of the main gripes of people who do not like Lisp is that they cannot see through the parentheses. They claim that they would never be able to efficiently write programmes while there are so many parentheses to keep track of. One common rebuttal is that editors such as Emacs can do this. And that, it can. However, this is not the main reason for programmers’ reluctance to even take a look at Lisp. I think that the main reason for this reluctance is that Lisp’s syntax is just so different. I remember watching a programme about appetite, a few years ago. People were presented with red baked-beans and blue baked-beans. I think that anyone can guess which was most preferred, without my even saying. One example of how Lisp has permeated into the circle of “real-world programming-languages” is Ruby. The founder of Ruby himself has admitted to having taken many features of Lisp. But looking at Ruby-code, one can instantly see that its syntax is similar to many other popular programming-languages such as Python. This, I think, has been a great advantage to Ruby’s adoption.

The main problem in the adoption of Lisp is analogous to that of racial discrimination. By no means am I comparing their importances. I believe that the main problem in Lisp’s adoption is the perception of its presentation, with which I definitely do not have a problem, and nor is it a problem of Lisp itself. There have been attempts to change its syntax to suit the majority’s views of how it should look like in order to be accepted, but these attempts failed.

I started programming with Python at 14, and quickly went on to Lisp, encouraged by the people on #emacs on FreeNode. I was lucky in the sense that I did not use, say for instance Java, for too long a period such that I would dismiss “different” languages. I must say that I have greatly enjoyed using Lisp because of its manifold features, its autonomy from one specific method of programming and also because of my ability to define new syntax where it does not exist. There is a common conception that Common Lisp is a functional programming-language. This notion may have arisen from CL’s relation with Scheme, which is closer to a functional programming-language. Of course, Lisp does not prevent one from writing functional programmes as much as is desired; most of Lisp’s functions do not modify their input, and indicate so in their names if they do. The notion that Lisp is somehow functional sometimes prevents a potential learner of Lisp from ever knowing about Common Lisp’s extremely powerful object system (CLOS). It isn’t really like Java’s version of object-orientation, but must definitely be perused.

Over the summer, I worked on a browser-based application that in essence enables its users to create and organise adverts and view their statistics. A number of features of Lisp greatly enhanced the enjoyment of my job. Firstly, a running Lisp process is dynamic. This means that I can enter a command-line from where I can change the definitions of functions, classes, objects, variables and various other things. This is conducive to testing ideas and also to saving a live and running instance from an error without having to restart or recompile the whole file. It greatly reduces the loss which a programming error may cause. Though the ability to quickly change things without a great cost can sometimes be counterproductive. I’ve found that a lot of the time, I could have spent less time implementing something if I would have just got a piece of paper and thought about the problem, instead of the trial and error method. This same ability can quickly lead to badly-designed code. Lisp’s flexibility definitely fits in with “agile programming”. The Common Lisp Object System allowed one of my colleagues to define a “web-framework” which could easily be specialised on. In the time at my job, I took a part in porting some old code to this new framework. In CLOS, a thing called a resource was defined. This was a class. A generic rendering (something that generates html) method was defined on the resource. This was the basis on which every single part of the system, was defined. CLOS’s flexibility allowed us to define classes of resources, and define methods ever more specialised on a given resource, when wanted. CLOS’s features even allowed us to combine the results of certain methods, and ways to bypass the normal execution order. The ability to define new syntax in Lisp, enabled us to use Lisp syntax to define html-pages, and even Javascript. Yes, it is possible to write valid Javascript in pure Lisp syntax. What this allowed us to do is even again, define procedures which manipulate Lisp code which is actually Javascript code, to generate new Javascript code. For instance, this allowed us to define an object-orientation system for Javascript, in Lisp. This was greatly helpful in designing the interface of what I was working on.

There isn’t much more to comment on with regards to my job, but I hope I’ve presented a few features of Lisp which definitely have bearing in web-development’s current trend. The ability to easily change features of a running system is a great benefit to people whose lives depend on a service’s constant running. With regards to AJAX, the ability to abstract a lot of the boiler-plate javascript code enables one to much easier implement an idea, and with the assistance of an actual programming-language.

I would like to start this blog with a synopsis of what I aim to achieve in posting on it. Of course, one gains pleasure by sharing one’s opinions with others with the intent of maybe changing theirs. I’m going to write about what I think, in this blog. I would like to further my ability in analysis and writing; I would like to be fully logical and fair in what I say. Other than politics, I aim to write about my experiences with mathematics and computer-programming. On the programming side, namely Haskell and Lisp. Following, will be a desciption of my experience working as a programmer at a company that deals solely in Lisp. I am open to constructive comments as to the factual, grammatical and logical validity of what I write.