Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "i love lisp"
Python -> indentation
HTML -> <!doctype HTML>
C++. -> int main()
PHP. -> <?php ?>
These are the fundamentals for some popular languages. Than there is this;
Lisp. -> ()
Like it doesn't give a fuck.
Not a single one.
I like that.11
A is for Assembly, a wizard's spell
B is for Bootstrap, so bland and the same. And also for Brainf*ck, will blow you away
C is for COBOL, your grandad knows that
D is for daemon, your server knows what
E is for Express.js, you node what is coming
F is for FORTRAN, which is perferct for sciencing
G is for GNU which is GNU not UNIX
H is for Haskell using functional units
I is for Intance, An action of Object
J is for Java plays with them Always
K is for Kotlin, Android's new toy
L is for Lisp, scheming a ploy
M is for Matlab, who knows how it works
N is for Node a bloatware of code
O is for Objective Pascal, you did not expect that
P is for programming, we all love to do that
Q is for Queries, A database is made
R is for R, statistics are great
S is for Selenium, you have to test that
S is for Smalltalk, let's make it all brief
T is for Turing Test, how human is this?
U is for Unix, build with all talents
V is for Visual Studio, built with all laments
W is for Web, lets build something cool
X is for XHTML, remember all that?
Y is for Y2K, I'm tired as f*ck
Z is for Zip, let's zip is all now.
Get yourself coffee and back to the grind.8
1) For other devs to stop being such whiny, pussy ass motherfuckers. Legit the ammount of whine in some of y'all is too extreme. Blow, judge and cuss out over the weakest shit ever. Like language wars. Dear lord if there is some pussy ass shit right there it is language wars.
2) To see Perl 6, Clojure and Rust see some hardcore adoption. Specially Clojure since I fucking love Lisp dialects and Clojure is pretty sweet Lisp. Clojurescript is also really nice for those that like working with Js.
3) To completely nuke Microsoft browsers. I am not a Microsoft hater by any means. But their browsers bring more pain than joy to everyone and they know it. If they choose to let them exist then by all means fix them! This is Microsoft! They got the resources!!
That's it really.12
I am making an LDAP user manager and porting application for my workplace.
The thing is, i made the first version of it in PHP already. Shit works fine and it without an issue.
I had an itch to redesign it using another tech stack that would be speedier, more tested and using a more established platform.
Enter Clojure, a Lisp dialect for the JVM. In a single day I managed to get 80% of the application done. We have about 80k users inside of our ldap system(maybe more) and I tested it with 150 accounts, so far so good.
If this works I will be the first person to deploy a Clojure application, not only for my organization, but for the city as a whole while simultaneously being able to say that I got a Lisp app deployed and working :D
I am loving this. Really wanna have a Lisp app out there and add it to my resume.
The head of my department, an old timer and really ancient dev smiled heavily when I showed him the codebase. Not only is it minimal, it is concise and elegant :D
I love Clojure
There are a couple of them to list! But to sum my main ones(biggest personal heroes):
John McCarthy, one of the founding fathers of Artificial Intelligence and accredited with coining such term(sometimes before 1960 if memory serves right), a mathematical prodigy, the man based the original model of the Lisp programming language in lambda calculus. Many modern concepts that we have in programming where implemented in one way or another from his systems back in the day, and as a data analyst and ML nut.....well I am a big fan.
Herb Sutter: C++ programmer extraordinaire. I appreciate him more for his lectures and published articles than anything else. Incredibly smart and down to earth and manages to make C++ less intimidating while still approaching it with respect.
Rich Hickey: The mastermind behind Clojure, the Lisp dialect for the JVM. Rich is really talented and his lectures behind his motivations and reasons behind everything he does with Clojure are fascinating to see.
Ryan Dahl: Awww shit y'all know how it is. The man changed web development both in the backend and the frontend for good. The concept of people writing their own servers to run their pages was not new, but the Node JS runtime environment made it more widely available to people by means of a simple to use language that was already popular with web developers. I would venture to say that Ryan's amazing contributions to JS made the language better, as it stands, the language continues to evolve and new features that make it overall better keep being added. He is currently building Deno, which would be a runtime environment for TypeScript, in Rust.
Anders Hejlsberg: This dude was everywhere man....the original author of Turbo Pascal and the lead of Delphi back in the day. These RAD tools paved the way for what would be a revolution in the computing world. The dude is also the lead architect and designer of the C# programming language as well as TypeScript.
This fucker is everywhere and I love it.
Yukihiro "Matz" Matsumoto: Matsumoto san is the creator of the Ruby programming language. Not only am I a die hard fan of Ruby, but of the core philosophies that the man keeps as the core of his language design: Make the developer happy, principle of least surprise. Also I follow: minswan which is a term made by the Ruby community that states Mats is nice so we are nice. <---- because being cool to others is better than being a passive aggressive cunt.
Steve Wozniak: I feel as if the man does not get enough recognition...the man designed the Apple || computer which (regardless of how much most of y'all bitch and whine) paved the way for modern micro computers. Dude is also accredited with designing one of the first programmable universal remotes(which momma said was shitty) but he did none the less.
Alan Kay: Developed Smalltalk and the original OOP way of doing things. Smalltalk as a concept is really fucking interesting. If you guys ever get the chance, play with Pharo, which is a modern Smalltalk. The thing is really interesting and the overall idea of Smalltalk can be grasped in very little time. It sucks because the software scales beautifully in terms of project building, the idea of hoisting a program as its own runtime environment and ide by preserving state through images is just mind blowing to me. Makes file based programs feel....well....quaint.
Those are some of the biggest dudes for me. I know that the list is large, but I wanted to give credit to the people that inspired me the most. Honorary mention goes to other language creators and engineers of course, but it would be way too large to list!9
Yesterday, i had to use neovim for a task on my friend's laptop. There was no WiFi and I couldn't install Emacs. This guy uses Vim a lot. He recently moved to neovim from vim. He had some Ruby codes going. I had to debug some codes(performance issues). I was reluctant to work on it but i had to. After looking at some keybindings and the plugins that guy had written, using vim was pleasure. It was fast. I could shoot up multiple terminals work on that and was instant. I wrote some plugins to indent my code which worked as it's supposed to. I used spacemacs(as it's configured properly) Emacs but there is some load time on spacemacs and there are some issues shooting up multiple spacemacs on terminals. I had just configured and started using prelude which is beautiful Emacs configuration and is fast.
After using neovim that day something hit me that i had blindly had faith in Emacs without using Vim and i use Emacs only for text editing task and terminal. I don't use it for listening music, browser and other task i can always use modern browsers and Spotify for that. Modern browsers and music players are amazing and using those in Emacs there is always a lack of functionality and UI.(modern people don't use those i think and some Emacs users i know use stripped down version of Emacs i.e. microemacs or XEmacs.
I know vi is present by default on every Linux distribution. That keybindings are same as vim and it can be configured so, it is useful for embedded devices and system architecture. I love terminals and love working on tty. That's why i guess i felt instantly tempted to keep on using vim and i loved it's performance. I checked on evil layer before but there are some issues with evil layer in Emacs like it isn't too efficient like vim. I love lisp though and clojure can be edited nicely in Vim.
Is this sin against the church of Emacs? Should i join vi vi vi? I have already dedicated my life on Emacs (check my bio). Am i tempted by the devil?4
Spent the entire weekend playing with Common Lisp and Clojure.
There is something about these dialects that just clicks on my brain and makes reasoning about certain problems much easier than in other languages.
St least to me, these languages are quite a powerful academic excercise when studying different approaches to programming.
And the parens look pretty to me. I really want to know why these languages attract me so much.
Ima see if i can make room for clojurescript.15
Less a rant and more of a rave about the Racket language.
If you haven't heard of it, Racket is a Scheme/Lisp that eases programming language development.
Let me break down why this is handy. When you come to dislike a language, it's because of limitations in the language itself or its ecosystem. That, and you are always obliged to translate your ideas to the terms of the language, the libraries in that language, and the idioms in both. Overall it starts to feel like a cage, because even if you git gud at a limited language, you still might not be able to do the things you REALLY want to do.
Lisps turn this on its head by letting you translate the solution to your terms rather than making you translate your solution to its terms. Lisps are homoiconic, which is a fancy word meaning that all valid programs in the language are also valid literal expressions of data in the same language. The code/data divide collapses and you can at any moment decide "Hey, this code I'm writing? It's data now and I'mma generate stuff with it." That's when you start getting macros and the beginnings of serious metaprogramming.
Racket made this mind-bendingly powerful. To the point that some of the language features make you gawk and say "Ok, but why anyone would ever need to do THAT?!" Some examples include converting compile-time errors to run-time errors and writing your own exception handling system.
But the kicker is that Racket is the only language I know of where you can say "You know what? Racket is sucking at this thing I want to do right now. I wish my language looked like THIS" and then you can use Racket to write your language in terms of Racket, and then your language becomes a valid extension of the Racket ecosystem. Your custom language can still import and use the rest of the ecosystem.
So, in a single Racket project, you can have a typed language, an untyped language, a configuration language and a markup language, and all of them can use the same libraries. It also means that if you have an accountant, ops manager or designer in house, you can write a little language for them that that understand and integrate their understanding of a solution with your system.
Why are relatively few using this box of magic?
Well, for one thing, it's hard. Unlike most, Racket enjoys the benefits of seriously amazing, complete and correct documentation. Which SOUNDS great, but here's a direct quote from one part of it.
"The intent of a cross-phase persistent module is to support values that are recognizable after phase crossings. For example, when a macro transformer running in phase 1 raises a syntax error as represented by an exn:fail:syntax instance, the instance is recognizable by a phase-0 exception handler wrapping a call to eval or expand that triggered the syntax error, because the exn:fail:syntax structure type is defined by a cross-phase persistent module.
A cross-phase persistent module imports only other cross-phase persistent modules, and it contains only definitions that bind variables to functions, structure types and related functions, or structure-type properties and related functions. A cross-phase persistent module never includes syntax literals (via quote-syntax) or variable references (via #%variable-reference). See Cross-Phase Persistent Module Declarations for the syntactic specification of a cross-phase persistent module declaration."
The thing is, I know a little bit about what that means. I read their introduction guide meant for people new to the language, and made enough progress in the reference to understand these terms in isolation. But when I keep running into paragraphs like THAT, I have to review everything again because I just get lost.
The other problem may be that it has the classic Lisp Curse (http://winestockwebdesign.com/Essay...), which means its power is also its greatest weakness. The power of a programming language can grow strong enough that the people who contribute to society using it rarely bother to use each other's work.
Still, Racket has a more complete and cooperative ecosystem compared to other Lisps I've observed. I'm still a total fanboi of the language and would love to get a job using it, but it's probably a long time out.
Thanks for reading. I don't have a particular desire to tell you to drop what you are doing to use it, I just think it's cool and wanted to brag on it a bit.1
I love it when in an job interview, the guy in front of me reads the IT skills part of my resumé and says "haha, lisp..."
And so we start talking trash about this shitty programming language
I admit i only keep it in my resumé for that.4