Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "haskell"
-
A super creepy webcrawler I built with a friend in Haskell. It uses social media, various reverse image searches from images and strategically picked video/gif frames, image EXIF data, user names, location data, etc to cross reference everything there is to know about someone. It builds weighted graphs in a database over time, trying to verify information through multiple pathways — although most searches are completed in seconds.
I originally built it for two reasons: Manager walks into the office for a meeting, and during the meeting I could ask him how his ski holiday with his wife and kids was, or casually mention how much I would like to learn his favorite hobby.
The other reason was porn of course.
I put further development in the freezer because it's already too creepy. I'd run it on some porn gif, and after a long search it had built a graph pointing to a residence in rural Russia with pictures of a local volleyball club.
To imagine that intelligence agencies probably have much better gathering tools is so insane to think about.53 -
People with programming languages named after them:
Haskell Curry
Ada Lovelace
Agner Erlang
Blaise Pascal
Taylor Swift30 -
We had a Commodore64. My dad used to be an electrical engineer and had programs on it for calculations, but sometimes I was allowed to play games on it.
When my mother passed away (late 80s, I was 7), I closed up completely. I didn't speak, locked myself into my room, skipped school to read in the library. My dad was a lovely caring man, but he was suffering from a mental disease, so he couldn't really handle the situation either.
A few weeks after the funeral, on my birthday, the C64 was set up in my bedroom, with the "programmers reference guide" on my desk. I stayed up late every night to read it and try the examples, thought about those programs while in school. I memorized the addresses of the sound and sprite buffers, learnt how programs were managed in memory and stored on the casette.
I worked on my own games, got lost in the stories I was writing, mostly scifi/fantasy RPGs. I bought 2764 eproms and soldered custom cartridges so I could store my finished work safely.
When I was 12 my dad disappeared, was found, and hospitalized with lost memory. I slipped through the cracks of child protection, felt responsible to take care of the house and pay the bills. After a year I got picked up and placed in foster care in a strict Christian family who disallowed the use of computers.
I ran away when I was 13, rented a student apartment using my orphanage checks (about €800/m), got a bunch of new and recycled computers on which I installed Debian, and learnt many new programming languages (C/C++, Haskell, JS, PHP, etc). My apartment mates joked about the 12 CRT monitors in my room, but I loved playing around with experimental networking setups. I tried to keep a low profile and attended high school, often faking my dad's signatures.
After a little over a year I was picked up by child protection again. My dad was living on his own again, partly recovered, and in front of a judge he agreed to be provisory legal guardian, despite his condition. I was ruled to be legally an adult at the age of 15, and got to keep living in the student flat (nation-wide foster parent shortage played a role).
OK, so this sounds like a sobstory. It isn't. I fondly remember my mom, my dad is doing pretty well, enjoying his old age together with an nice woman in some communal landhouse place.
I had a bit of a downturn from age 18-22 or so, lots of drugs and partying. Maybe I just needed to do that. I never finished any school (not even high school), but managed to build a relatively good career. My mom was a biochemist and left me a lot of books, and I started out as lab analyst for a pharma company, later went into phytogenetics, then aerospace (QA/NDT), and later back to pure programming again.
Computers helped me through a tough childhood.
They awakened a passion for creative writing, for math, for science as a whole. I'm a bit messed up, a bit of a survivalist, but currently quite happy and content with my life.
I try to keep reminding people around me, especially those who have just become parents, that you might feel like your kids need a perfect childhood, worrying about social development, dragging them to soccer matches and expensive schools...
But the most important part is to just love them, even if (or especially when) life is harsh and imperfect. Show them you love them with small gestures, and give their dreams the chance to flourish using any of the little resources you have available.22 -
I'm a self-taught 19-year-old programmer. Coding since 10, dropped out of high-school and got fist job at 15.
In the the early days I was extremely passionate, learning SICP, Algorithms, doing Haskell, C/C++, Rust, Assembly, writing toy compilers/interpreters, tweaking Gentoo/Arch. Even got a lambda tattoo on my arm after learning lambda-calculus and church numerals.
My first job - a company which raised $100,000 on kickstarter. The CEO was a dumb millionaire hippie, who was bored with his money, so he wanted to run a company even though he had no idea what he was doing. He used to talk about how he build our product, even tho he had 0 technical knowledge whatsoever. He was on news a few times which was pretty cringeworthy. The company had only 1 programmer (other than me) who was pretty decent.
We shipped the project, but soon we burned through kickstart money and the sales dried off. Instead of trying to aquire customers (or abandoning the project), boss kept looking for investors, which kept us afloat for an extra year.
Eventually the money dried up, and instead of closing gates, boss decreased our paychecks without our knowledge. He also converted us from full-time employees to "contractors" (also without our knowledge) so he wouldn't have to pay taxes for us. My paycheck decreased by 40% by I still stayed.
One day, I was trying to burn a USB drive, and I did "dd of=/dev/sda" instead of sdb, therefore wiping out our development server. They asked me to stay at company, but I turned in my resignation letter the next day (my highest ever post on reddit was in /r/TIFU).
Next, I found a job at a "finance" company. $50k/year as a 18-year-old. CEO was a good-looking smooth-talker who made few million bucks talking old people into giving him their retirement money.
He claimed he changed his ways, and was now trying to help average folks save money. So far I've been here 8 month and I do not see that happening. He forces me to do sketchy shit, that clearly doesn't have clients best interests in mind.
I am the only developer, and I quickly became a back-end and front-end ninja.
I switched the company infrastructure from shitty drag+drop website builder, WordPress and shitty Excel macros into a beautiful custom-written python back-end.
Little did I know, this company doesn't need a real programmer. I don't have clear requirements, I get unrealistic deadlines, and boss is too busy to even communicate what he wants from me.
Eventually I sold my soul. I switched parts of it to WordPress, because I was not given enough time to write custom code properly.
For latest project, I switched from using custom React/Material/Sass to using drag+drop TypeForms for surveys.
I used to be an extremist FLOSS Richard Stallman fanboy, but eventually I traded my morals, dreams and ideals for a paycheck. Hey, $50k is not bad, so maybe I shouldn't be complaining? :(
I got addicted to pot for 2 years. Recently I've gotten arrested, and it is honestly one of the best things that ever happened to me. Before I got arrested, I did some freelancing for a mugshot website. In un-related news, my mugshot dissapeared.
I have been sober for 2 month now, and my brain is finally coming back.
I know average developer hits a wall at around $80k, and then you have to either move into management or have your own business.
After getting sober, I realized that money isn't going to make me happy, and I don't want to manage people. I'm an old-school neck-beard hacker. My true passion is mathematics and physics. I don't want to glue bullshit libraries together.
I want to write real code, trace kernel bugs, optimize compilers. Albeit, I was boring in the wrong generation.
I've started studying real analysis, brushing up differential equations, and now trying to tackle machine learning and Neural Networks, and understanding the juicy math behind gradient descent.
I don't know what my plan is for the future, but I'll figure it out as long as I have my brain. Maybe I will continue making shitty forms and collect paycheck, while studying mathematics. Maybe I will figure out something else.
But I can't just let my brain rot while chasing money and impressing dumb bosses. If I wait until I get rich to do things I love, my brain will be too far gone at that point. I can't just sell myself out. I'm coming back to my roots.
I still feel like after experiencing industry and pot, I'm a shittier developer than I was at age 15. But my passion is slowly coming back.
Any suggestions from wise ol' neckbeards on how to proceed?32 -
My mom died when I was 7, after which my dad bought me a Commodore 64 so I had something to lose myself in during the mourning process.
I learned everything about that system, from my first GOTO statement to sprite buffers, to soldering my own EPROM cartridges. My dad didn't deal with the loss so well, and became a missing person 5 years later when I was 12.
I got into foster care with a bunch of strict religious cultists who wouldn't allow electronics in the house.
So I ran away at 14, sub-rented a closet in a student apartment using my orphan benefits and bought a secondhand IBM computer. I spent about 16 hours a day learning about BSD and Linux, C, C++, Fortran, ADA, Haskell, Livescript and even more awful things like Visual Basic, ASP, Windows NT, and Active Directory.
I faked my ID (back then it was just a laminated sheet of paper), and got a job at 15-pretending-to-be-17 at one of the first ISPs in my country. I wrote the firmware and admin panel for their router, full of shitty CGI-bin ASP code and vulnerabilities.
That somehow got me into a job at Microsoft, building the MS Office language pack for my country, and as an official "conflict resolver" for their shitty version control system. Yes, they had fulltime people employed just to resolve VCS conflicts.
After that I worked at Arianespace (X-ray NDT, visualizing/tagging dicom scans, image recognition of faulty propellant tank welds), and after that I switched to biotech, first phytogenetics, then immunology, then pharmacokynetics.
In between I have grown & synthesized and sold large quantities of recreational drugs, taken care of some big felines, got a pilot license, taught IT at an elementary school, renovated a house, and procreated.
A lot of it was to prove myself to the world -- prove that a nearly-broke-orphan-high-school-dropout could succeed at life.
But hey, now I work for a "startup", so I guess I failed after all.23 -
The project where I realized I wanted to go from chemist to pro dev.
I built a flow-chemistry spectrometer with monitoring backend in Haskell.
Spectroscopy is where you add a reagent to a glass tube, it changes color, and by measuring the exact color it tells you how much of something (for example, a toxin) is present in the sample.
I had to do that a lot on factory samples, writing down measurements using pen & paper.
I'm lazy so I decided to do the logical thing: Automate it. I bought a second hand spectrometer, stripped the casing, did a shitload of glassblowing and hooked up tubes to the production pipelines, so I could get samples, mixing them in the correct ratio with reagents in continuous flows using valves.
I ended up using 2 home-crafted arduino-like boards (etching PCBs is fun!).
One to calibrate the mixture against known samples and control solenoid valves to continuously cycle through various reagents and deionized flushing water, the other to record the measurements and send them to a server running a Haskell/Yesod API.
The server collected the information into InfluxDB (A time series database), displaying all data on a graphite dashboard.
Eventually I wrote Haskell plugins for most of the chemistry processes, from pH & temperature measurements to polymer property and pigment tests (they made a lot of printer ink).
Then I was fired because they didn't need chemists anymore, and the code "could be maintained by the intern" (poor guy)...
But I did find out that I loved functional programming, chemistry automation projects, and crafting my own electronics during that time.16 -
Not a specifically dev related story, but absolutely rant worthy.
Today I was working from home, and my wife called me to tell me that some awful person had thrown a young cat into the dumpster at her work.
To that person - you are a scumbag. You’re lucky no one left you alone in a hot car as a kid, let alone a dumpster. Seriously, why? Why is it so hard to take it to a shelter?
Anyway - I went and bought a whole bunch of cat stuff - I grew up with cats but I’ve never had one on my own. We’re at the vet now. I think we’ll name her Curry (after Haskell Curry, and lovely spicy dishes).22 -
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
Languages without a fully implemented type system.
Granted, it has been a fad for a quarter century, but everything points at one simple fact: Types matter in programming.
In dynamic languages, you tend to see that testing suites explode into thousands of tests, many of which wouldn't even be necessary if you had some type safety.
You see that languages like JS are forked into more typesafe dialects, like Typescript. Python got typehints since 3.6, and PHP added typehints for methods, then typehints for properties, and will soon even have compound types.
Maybe most languages will never reach the level of Haskell or Scala, and that's totally fine, but I think the direction languages are moving in is pretty much set in stone: No ambiguity, more safety. Code should fail before deploying, not after.36 -
Assembly: He’s the nerd. He speaks very quickly and uses short sentences. Very few people talk to him. He’s considered to be an autist asperger by a majority of the class because he finishes the exams so quickly it’s insane and he faces a lot of difficulties in speaking with others. He’s at school but already dressed like an engineer.
Ada: She’s a foureyes nerd. When she gets the answer she’s doesn’t make any mistake. Ada often corrects the teacher when she writes a line a little ambiguous. She’s building a rocketship in her backyard and she’s always speaking about this weird hobby.
Python: He’s Mr Popular. He likes skate, brags about all the parties he’s invited to. He’s good in all the subjects taught in class but he’ll do them a bit slower than the others. Everyone loves him because he explainsthings so well, sometimes the teacher herself asks Python to explain some part of the course. He’s dressed with a hoodie, a baggy and glasses on the top of the head ;)
Java: She is one of the toppers of the class and very popular. She’s very good in all the topics. The teacher loves her but she’s a very talkative person.
Scala/Kotlin: They are twin sisters and the best friends of Java. Unfortunately, they are not as popular and it’s often Java who takes the lead in the group. It’s very difficult to distinguish one from another. Both are far less talkative than Java but Scala speaks a bit differently than Kotlin and Java.
C: He’s the topper of the class. He’s so fast in completing the exams that the teacher really thinks he’s copying Assembly’s work. He has a little brother C++ and they share a lot in common together. He’s the chess major and often plays chess with Assembly and his big brother.
Go: He’s the new kid on the bloc. He doesn’t like C++ and his friends and he wants to prove he can do better than them. Of course, he prefers playing Go over Chess.
APL: He’s a lonely guy. No one understands him when he speaks. Even the teacher is surprised when APL shows a correct answer after several lines of incomprehensible pictograms. People think that he was born in a foreign country… or a foreign planet ?
HTML/CSS: These twin brothers are very different. One is dressed in black and white and the other is dressed with everything except black and white. HTML is very talkative and annoying and the CSS is very artistic. CSS is the best student in Art lessons and HTML performs well in written expression.
LaTeX: She’s friend of HTML. The teacher likes her because she has a gift of writing. LaTeX likes the mathematical courses because she can draw fancy greek letters. The teacher knows this well and she is often asked to write a formula on the black board.
VBA: He’s in the back, looking through the windows. Not really interested in the courses taught in class. In the exams, he answers always with a table.
C#: He’s in the back playing yet another game on his smartphone. He likes being next to the windows also.
JavaScript: People often mix up Java and JavaScript because they have a similar name. But they are definitly not the same. Javascript spends a lot of time with HTMLand CSS. He’s as artistic as CSS but he prefers things that move. He likes actions and movies. CSS dreams to be a painter wheras JavaScript wants to be a film-maker.
Haskell: He’s a goth. Dressed up in dark. Doesn’t talk to anyone. He doesn’t understand why others write pages when he can write a couple of lines to answer the same question.
Julia: She’s the newest student here. She doesn’t have any friends yet but her secret aim is to be as popular as Python and as fast as C.
Credit: Thomas jalabert4 -
So, today I was at my college library, working on an Haskell project that I have for my Functional Programming class. Library's packed and no seats are available, when the lady that works there passes behind me and says:
"There's people that want to study, if you're gonna be playing on your laptop please leave."
What? Excuse me? Are we in the 21st century or what?
How does a lady that works at a library, on an Engineering College, for more than 10 years, doesn't...
Screw it, I just laughed so hard and proceeded working.
Oh and by the way, first time posting on here!12 -
At introduction of new class teacher asked which _one_ of the following isn't a programming language:
- Swift
- Pseudocode
- Haskell
- HTML
Took my chance on HTML, but apperantly pseudocode is less of a programming language according to him.30 -
Am 23, I plan to have 4 kids in the future.
This will be their first names
1. Ruby - Female name
2. Pearl - Female name
3. Haskell - Male name
4. Python - Last born. Most loved. But am sure he will hate me for his name😂😂
All I need is a wife now or a girlfriend could do🤔...38 -
Only one sticker.
I go door-to-door every Sunday, "Excuse me dear sir/madam, do you have a moment to talk about our lord and savior Haskell?".
Most people slam the door shut in my face, but every lost family I convert to the way of the monad is worth it.
Even if they don't believe in the same deity, even if they express their love for the divine through something as misguided as Typescript or Swift or whatever, as long as they embrace the truth of strong types and composable code, as long as they at least read the gospel of the functional style once in their lives, have one enlightened moment where they see the glory of morphisms, it's all good.34 -
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 -
Well fuck me. Just went to my first meetUp with a group of Haskell programmers.
I think they broke Enigma in 3 lines of code.
Serious shit.
Hats off to those guys!7 -
Two years ago I moved to Dublin with my wife (we met on tour while we were both working in music) as visa laws in the UK didn’t allow me to support the visa of a Russian national on a freelance artists salary.
After we came to Dublin I was playing a lot to pay rent (major rental crisis here), I play(ed) Double Bass which is a physically intensive instrument and through overworking caused a long term injury to my forearm which prevents me playing.
Luckily my wife was able to start working in Community Operations for the big tech companies here (not an amazing job and I want her to be able to stop).
Anyway, I was a bit stuck with what step to take next as my entire career had been driven by the passion to master an art that I was very committed to. It gave me joy and meaning.
I was working as hard as I could with a clear vision but no clear path available to get there, then by chance the opportunity came to study a Higher Diploma qualification in Data Science/Analysis (I have some experience handling music licensing for tech startups and an MA with components in music analysis, which I spun into a narrative). Seemed like a ‘smart’ thing to do to do pick up a ‘respectable’ qualification, if I can’t play any more.
The programme had a strong programming element and I really enjoyed that part. The heavy statistics/algebra element was difficult but as my Python programming improved, I was able to write and utilise codebase to streamline the work, and I started to pull ahead of the class. I put in more and more time to programming and studied personally far beyond the requirements of the programme (scored some of the highest academic grades I’ve ever achieved). I picked up a confident level of Bash, SQL, Cypher (Neo4j), proficiency with libraries like pandas, scikit-learn as well as R things like ggplot. I’m almost at the end of the course now and I’m currently lecturing evening classes at the university as a paid professional, teaching Graph Database theory and implementation of Neo4j using Python. I’m co-writing a thesis on Machine Learning in The Creative Process (with faculty members) to be published by the institute. My confidence in programming grew and grew and with that platform to lift me, I pulled away from the class further and further.
I felt lost for a while, but I’ve found my new passion. I feel the drive to master the craft, the desire to create, to refine and to explore.
I’m going to write a Thesis with a strong focus on programmatic implementation and then try and take a programming related position and build from there. I’m excited to become a professional in this field. It might take time and not be easy, but I’ve already mastered one craft in life to the highest levels of expertise (and tutored it for almost 10 years). I’m 30 now and no expert (yet), but am well beyond beginner. I know how to learn and self study effectively.
The future is exciting and I’ve discovered my new art! (I’m also performing live these days with ‘TidalCycles’! (Haskell pattern syntax for music performance).
Hey all! I’m new on devRant!12 -
Not having finished any education, and writing code during interviews.
I have a pretty nice resume with good references, and I think I'm a reasonably good & experienced dev.
But I'm absolutely unable to write code on paper, and really wonder how some devs can just write out algorithms using a pen and reason about it, without trying/failing/playing/fixing in an IDE.
Education I think.
I can transform the theory on a complex Wikipedia page about math/algorithm into code, I can translate a Haskell library into idiomatic python... but what I haven't done is write out sorting functions or fibonacci generators a million times during Java class.
I don't see the point either... but I still feel utterly worthless during an interview if they ask "So you haven't even finished highschool? Can you at least solve this prime number problem using a marker on this whiteboard? Could you explain in words which sorting algorithm is faster and why?"
"Uh... let me fetch a laptop with an IDE, stackoverflow and Wikipedia?"22 -
Books and command lines.
I don't like teachers.
I think it's because my learning process is very async and chaotic. When I see a snippet in Golang, I relate it to PHP, Rust and Haskell. I jump to resolving the problem in other languages, trying to find out which approaches work in Go.
Then I read about some computer science concept on Wikipedia and get lost in that while my hunger for knowledge and food increases. After a while I look up a recipe for a pasta salad, and while cutting bell peppers, I see the recipe in terms of typed morphisms, I sprinkle and intersperse ingredients through mapping functions, then decide to write an interpreter for the esoteric "Chef" language in Go so I can interpret my salad recipe while eating it.
Voila, I'm learning Go.
I have no patience for linear mentoring, and others have no patience for mentoring me.
But that's OK.1 -
I know a guy who writes everything in Haskell.
He started learning it because his parents got him into a math school (and math schools in Russia use either Python or Haskell), he liked it, but later he dropped out. Today, apart from Haskell, he only really knows HTML and CSS, and maybe some JavaScript.
He writes backend AND frontend in Haskell and uses some kind of JRPC stuff to manage all that. He told me that his life is a pure heaven. He IS RELEVANT (!!!!!!), his apps always run without bugs (because in Haskell you can mathematically prove that there are no bugs), they are performant, faster than C (because you can't write a complex enough app in C that will be as efficient as compiled Haskell, because it's you vs compiler). He doesn't have any problems in life whatsoever. He never got burned out, he never got anxiety or depression. He doesn't act pretentiously and stuff, he's just a normal person who rarely even mentions that he can program.
Science says it can't be done! You can't only know Haskell and be a relevant software engineer! You know what, he didn't _know_ it was impossible. He's like that grandpa from a meme, he got Alzheimers, but because of it he forgot that he had Alzheimers, and now remembers everything.
The fun thing is that he looks like a typical gopnik, with adidas suits and stuff.
What a gem of a person.26 -
Made a program to list primes until stopped. I got to about 2 billion when it took 8 GB of RAM and I more or less had to stopped it.
Only took 10% of CPU though.13 -
If you know haskell, you know the pain of learning Monads, functors and applicatives, especially when coming from imperative background.
But this guy filtered out all the witchfuckery out of this seemingly complex subject. And there are pictures.
http://adit.io/posts/...6 -
Ooh this is good.
At my first job, i was hired as a c++ developer. The task seemed easy enough, it was a research and the previous developer died, leaving behind a lot of documentation and some legacy fortran code. Now you might not know, but fortran can be really easily converted to c, and then refactored to c++.
Fine, time to read the docs. The research was on pollen levels, cant really tell more. Mostly advanced maths. I dug through 500+ pages of algebra just to realize, theres no way this would ever work. Okay dont panic, im a data analyst, i can handle this.
Lets take a look at the fortran code, maybe that makes more sense. Turns out it had nothing to do with the task. It looped through some external data i couldnt find anywhere and thats it. Yay.
So i exported everything we had to a csv file, wrote a java program to apply linefit with linear regression and filter out the bad records. After that i spent 2 days in a hot server room, hoping that the old intel xeon wouldnt break down from sending java outputs directly to haskell, but it held on its own.1 -
Had to do an assignment in Haskell and had some bugs all over the way. After some Wodka I did a one liner that worked but I never found out why. 10/10 would do again3
-
The 1st rule of Javascript is: You don't admit you program Javascript.
The 1st rule of Rust is: You tell everyone you program Rust and how it is better than basically any programming language that existed or will exist.
The 1st rule of C++ is: There are no rules because everyone was too busy debugging templates to think of any rules.
The 1st rule of Java is: You must have excessive numbers of classes and boilerplate. The more boilerplate the better.
The 1st rule of Haskell is: It is great to learn, but you will never see it again once you leave college.38 -
1h into learning Haskell and I haven't written a single hello world example yet
Change feels good
I already love it12 -
I work for a "Visionary" in our org. Motherfucker will use something for five minutes and decided it's the new-hot, and off we go chasing it.
"I did a Python + AWS tutorial last night, I get it. We need to start migrating everything to Lambda today."
A week later he hits his first error message that needs more than five minutes of work to solve and we're moving to a local Haskell stack.4 -
I really like programming in Haskell.
Everyone I know seems to hate it (or prefer to work with oo-languages)
Any friendly Haskeller here who wants to collab/teach/learn from each other? ._.'8 -
I'm working on a programming language with a "bytecode" interpreter and a compiler that translates source code to said bytecode and... it sort of actually works!
I want to recreate an Erlang-style environment, currently you can write functions, call C++ functions via wrappers, have immutable-only values, and it has no explicit control structure apart from statement sequencing and the if-expression because I want to make it as functional as possible. Next thing on the list is to add a green threads implementation and ability to spawn and send messages to processes.
Still a WIP and heck even design-in-progress.
Now for the rant:
I'm using CMake for building C++ (interpreter) and Stack for Haskell (compiler) and I've been trying to get them to talk to each other for hours because I want CMake to manage the Stack build too and shove all the executables into one place. CMake documentation is weird and Stack isn't too helpful either, so I guess I'll just spend another few hours trying to get Stack to fuckin reveal its build directory to CMake and/or build to a given directory. Ugh.8 -
My tech stack progression:
Started with PHP without any frameworks, using a homegrown MVC architecture. Used to use `mysql_` functions everywhere. And only jquery + vanilla CSS in the front end.
Then moved to use PDO functions in PHP and Backbone.js + Less CSS in the front-end.
Then moved to Django in the back-end. Did not like Django very much as it is too opinionated and not flexible (although it's damn good for rapid development if you buy into their type of things).
Then moved to Flask + SQLAlchemy and using a home grown architecture. This is a sweet spot for me in terms of back end and stayed in this spot for the longest time.
Moved to Postgres from MySQL as I fell in love with Postgres.
Then learnt React+Redux. Liked it. Made most sense to front-end development this way. Moved front-end stack to React+Redux.
Learning Haskell and been working with Scotty and eyeing Servant for a while now.
Let's see where it goes from here.
PS: this is my personal journey through various tech stacks in various products at various companies I have worked. I'm not talking about moving a product through these many tech stacks. That doesn't make any sense.9 -
Developing a Haskell project, indenting everything with 3 spaces. Develop to over a million lines of code. Use Darcs as a repository. Run the code on AIX powerpc architecture. Suffering from special snowflake syndrome.9
-
Normal programmers cheer up when their code runs,
Haskell programmers cheer up when their code compiles.4 -
You know what really pisses me off about the dev community is the circle jerk that ensues when someone bashes something they have no experience in. Take yesterday's React bash on Reddit and DevRant. Thomas Fuchs compared React and JSX to the intermingling of HTML CSS and JS of 15 years ago. If you knew anything about React or spent 1 hour learning what it's about you would immediately know why that isn't true but no, a giant circle jerk ensued comparing it to PHP! I'm sorry but HOW can you compare a pure JS view library that is renderable by the browser, to a full fledged server side language?? Not to mention the React approach uses a completely different programming paradigm of functional programming.
When I first saw React and Redux I realized what this is all really about, a shift in the paradigms of programming. React + Redux is the first time that functional programming has entered mainstream. We've had functional programming available to us via Haskell and more recently Clojure for a while now but it was never very obvious how powerful functional programming could be outside of the niche that used it for more analytical type tools. Now we have things like hot reloading (https://youtube.com/watch/...) and state playback (https://youtube.com/watch/... skip to ~3min to watch the magic) thanks to immutable state.
Before you decide that React is just another flavor of the month library I encourage you to learn about the advantages that functional programming provides (https://medium.com/@cscalfani/...) and checkout Elm (http://elm-lang.org/) as well. The nice thing about React + Redux is that it gives us a way to start programming functionally, without having to learn ML style syntax like Elm and ClojureScript. Keep in mind, when Object Oriented Programming was becoming popular it was widely controversial as well and look at all it has done for us.4 -
One of the biggest barriers to the wide(r) scale adoption of functional programming languages like Haskell, F#, and Scala is how snooty and condescending your average FP developer is. And beginner-unfriendly.
Ask them a question about an intermediate topic (in my case, the Free monad) you're likely to get a whole torrent of category theoretic rubbish in return.
This is a common pattern I see when "experts" answer questions.
Now, it didn't bother me much because I've studied a fair amount of category theory and can usually follow such answers, but, for the sake of the general case, I'd like to shove these rules into the heads of everyone writing an answer to a question (not just FP):
1. If you can't illustrate a concept clearly without going into verbal diarrhoea with phrases like "monad homomorphism" and "just a monoid in the category of endofunctors" then you clearly haven't understood it properly (unless, of course, the answer absolutely requires it). An answer is not the place to show off your knowledge of a topic.
2. Please remember that everyone was a beginner at some point. Including you. Understand that some concepts can be extremely frustrating at first and yet incredibly simple after you grok them (eg. monads).
3. If the person asking the question is a beginner, using complex concepts in an answer just because it's a more "elegant" way to explain it doesn't really help them. They are more likely to get confused and drop the topic.
(Kudos to those people who give highly relevant, insightful, simple, and intuitive answers, you guys are the best).2 -
Bonus points if you also wrote it in a language entirely new to you, or even in entirely different paradigm. (In my case Haskell.)11
-
Visited Java and couldn't C on short distances. Went to an iClinic that Swift'ly gave me c++ goggles. I can now C# but I Haskell been struggling with my OCaml as it's been bit by a Bash'ing Python in a Shell. I'm not trying to sell you a Ruby but I can't find my way back to BASIC.4
-
Dynamically typed languages are barbaric to me.
It's pretty much universally understood that programmers program with types in mind (if you have a method that takes a name, it's a string. You don't want a name that's an integer).
Even it you don't like the verbosity of type annotations, that's fine. It adds maybe seconds of time to type, which is neglible in my opinion, but it's a discussion to be had.
If that's the case, use Crystal. It's statically typed, and no type annotations are required (it looks nearly identical to Ruby).
So many errors are fixed by static typing and compilers. I know a person who migrated most of the Python std library to Haskell and found typing errors in it. *In their standard library*. If the developers of Python can't be trusted to avoid simple typing errors with all their unit tests, how can anyone?
Plus, even if unit testing universally guarded against typing errors, why would you prefer that? It takes far less time to add a type annotation (and even less time to write nothing in Crystal), and you get the benefit of knowing types at compile time.
I've had some super weird type experiences in Ruby. You can mock out the return of the type check to be what you want. I've been unit testing in Ruby before, tried mocking a method on a type, didn't work as I expected. Checked the type, it lines up.
Turns out, nested away in some obscure place was a factory that was generating types and masking them as different types because we figured "since it responds to all the same methods, it's practically the same type right?", but not in the unit test. Took 45 minutes on my time when it could've taken ~0 seconds in a statically typed language.11 -
OMG ever since I started to love Haskell, all nonfunctional languages look ugly, I am getting worse at writing procedural code!3
-
Definitely Rust, and a bit Haskell.
Rust has made me much more conscious of data ownership through a program, to the point that any C/C++ function I wrote that takes a pointer nowadays gets a comment on ownership.
I wish it was a bit less pedantic about generics sometimes, which is why I've started working on a "less pedantic rust", where generics are done through multiple dispatch à la Julia, but still monomorphising everything I can. I've only started this week, but I already have a tokenizer and most of the type inference system (an SLD tree) ready. Next up is the borrow checker and parsing the tokenized input to whatever the type inference and borrow checker need to work with, and of course actual code generation...
Haskell is my first FP language, and introduced me to some FP patterns which, turns out, are super useful even with less FP languages. -
I thought that learning C would give me a good baseline for learning whatever other programming language.
Then I started looking into Haskell.8 -
I wrote a prototype for a program to do some basic data cleaning tasks in Go. The idea is to just distribute the files with the executable on our shared network to our team (since it is small enough, no github bullshit needed for this) and they can go from there.
Felt experimental, so I decided to try out F# since I have always been interested with it and for some reason Microsoft adopted it into their core net framework.
I shit you not, from 185 lines of Go code, separated into proper modules etc not to mention the additional packages I downloaded (simple things for CSV reading bla bla)
To fucking 30 lines of F# that could probably be condensed more if I knew how to do PROPER functional programming. The actual code is very much procedural with very basic functional composition, so it could probably be even less, just more "dense"
I am amazed really. I do not like that namespace pollution happens all over F# since importing System.IO gives you a bunch of shit that you wouldn't know where it is coming from unless you fuck enough with Ionide and the docs. But man.....
No need for dotnet run to test this bitch, just highlight it on the IDE, alt enter and WHAM you have the repl in front of you, incremental quasi like Lisp changes on the code can be REPL changed this way, plethora of .NET BCL wonders in it, and a single point of documentation as long as you stay in standard .net
I am amazed and in love, plus finding what I wanted to do was a fucking cakewalk.
Downside: I work in a place in which Python is seen as magic and PHP, VB.NEt and C# is the end all be all of languages. If me goes away or dies there will be no one else in this side of the state to fuck with F#
This language needs to be studied more. Shit can be so compact, but I do feel that one needs to really know enough of functional programming to be good at it. It is really not a pure language like Haskell (then again, haskell is the only "mainstream" pure functional language ain't it not?) but still, shit is really nice and I really dig what Microhard is doing in terms of the .net framework.
Will provide later findings. My entire team is on the Microsoft space, we do have Linux servers, but porting the code to generate the necessary executables for those servers if needed should be a walk in the park. I am just really intrigued by how many lines of code I was able to cut down from the Go application.
Please note that this could also mean that I am a shit Golang dev, but the cut down of nil err checkings do come somewhere.9 -
Learning C was easier than learning Haskell, and learning C was atrocious.
What in the actual fuck is this?16 -
Frustrated, tired and a bit lost.
I'm a "Senior PHP Backend Dev", which includes not the greatest tech stack nor the best job title, but it pays fine, and the company is awesome to work for.
I suck at writing features, but I'm great at bitching, and I easily put complex abstract concepts into usable models. So I'm also QA, tester, tech lead, database architect, whatever.
That makes writing PHP less annoying, because I create the rules, and whip devs around when they forget a return type definition or forget to handle an edge case. But I don't write a lot of code anymore, I mostly read (bad) code.
Lately I REALLY feel like doing something else... problem is that I know JS/ES6, but really dislike React/Vue and the whole crappy modern frontend toolchainchootrain of babelifyingwebpackingyarnballs. I know Python/Tensorflow/etc, but don't feel like I want to go into data science or AI. And then I'm awesome at the shit no one uses, like Haskell, Go and Rust (and worse).
I got a job offer which combines a very interesting PHP codebase with a Java infrastructure, where I could learn a lot... and I'm kind of tempted.
Problem is, everyone always shits on Java. I always made a bit of fun of Java myself. Don't even know exactly why, probably some really cruel instinct which causes kids to bully the least popular kid.
I know the basics, I've written the hello world, and a small backend app for a personal project. I know how strict and verbose it can be. I love the strictness in Haskell and Rust.... but those are both also quite terse.
Should I become a Java dev? I'm not talking about Android SDK, but an insane enterprise codebase at a life sciences corporation.
To the pro Java devs: What are the best and worst things about your job, about the weekly processes, about the toolchains? Have you ever considered other languages? Do you unconditionally love and believe in Java, or do you believe Swift, Kotlin, Scala or whatever will eventually make it completely obsolete?
Will Java hasten my decline into the cynical neckbeard I was always destined to be?
There are a lot more fun langauges, but looking at realistic demand and career value...20 -
I was reading the post made by another ranter in which he was basically asked to lower the complexity of an automation script he wrote in place of something everyone else could understand. Another dev commented that more than likely it had to do with the company being worried that ranter_1 would leave and there would be no one capable of maintaining the code.
I understood this completely from both perspectives. It makes me worry how real this sometimes is. We don't get to implement X tech stack because people are worried that no one would be able to maintain Y project in the event of someone leaving. But fuck man, sometimes one wants to expand more and do things differently.
At work I came to find out that the main reason why the entirety of our stack is built in PHP is because the first dev hired into the web tech department(which is only about 12 years old in my institution) only knew PHP. The other part that deals with Java is due to some extensions to some third party applications that we have, Java knowledge (more specifically Spring and Grails) is used for those, the rest is mostly PHP. And while I LOVE PHP and don't really have anything against the language I really wonder what would it be of the institution had we've had a developer with a more....esoteric taste. Clojure, Elixir, Haskell, F# and many others. These are languages and tech stacks that bring such a forward way of thinking into the way we build things.
On the other hand, I understand if the talent pool for each of these stacks is somewhat hard to come up with, but if we don't push for certain items then they will never grow.
The other week I got scolded by the lead dev from the web tech department for using Clojure to create the demo of an application. He said that the project will most likely fall into his hands and he does not know the stack. I calmly mentioned that I would gladly take care of it if given the opportunity as well as to explain to him how the code works and provide training to everyone for it :D I also (in all of my greatness) built the same program for him in PHP. Now, I outrank him :P so the scold bounced out of the window, plus he is a friend, but the fact remains that we reached the situation in which the performance as well as the benefits of one stack were shadowed by the fact that it holds a more esoteric place in the development community.
In the end I am happy to provide the PHP codebase to him. The head of the department + my boss were already impressed with the fact that I was able to build the product in a small amount of time using a potent tech stack, they know where my abilities are and what I can do. That to me was all that matters, even if the project gets shelved, the fact that I was able to use it at work for something means a lot to me.
That and I got permission to use it for the things that will happen with my new department + the collective interest of everyone in paying me to give support even if I ever leave the institution.
Win.13 -
Mother fucking SQL, fuck mathematicians, fuck every thing!
So let's supose we'd only need the first char of a string. Every, and I mean fucking every (php, java, javascript, ruby, python, haskell) fucking language, uses something like `substring(input, 0, 1)` as it knows the input is nothing more than a fucking array of chars, otherwise known as motherfucking String. Logically the offset for the first char is 0.
Enter SQL, there you need to put `SUBSTRING(input, 1, 1)` because fuck every one! Fucking math guys who developed relational algebra on which (most) databases are based on (I love you for it, but come on you fuckers!), Decided that the first character should be at position 1...
Fuckers6 -
"we will also consider skills in other production languages, such as Haskell, Clojure, OCaml, Rust and C++"
ah, of course, the classic "production" languages. wouldn't want to be using those other "developing" or "staging" languages... 🥱
i swear, the 🤡 count increases by the hour.24 -
I'm currently taking another dive into haskell. I didn't know you needed a masters degree in theoretical something to print text on stdout.
Note to myself: make dog-emoji-based language huskyell2 -
“Yes Haskell is my favorite language, so elegant yet so powerful, a pure form of expression of my complex thoughts”
*proceeds to code nothing but crappy hacky CRUDs in php5.4 for five years straight* -
Yknow, I want to make an android app that I have in my mind for about half a year now and I already tried twice, both with Kotlin and with Java but everytime I try it's just pain and suffering and frustration...
No it's not because of the language, I like Java and I like Kotlin too and I'd say I'm at least decent at Kotlin and really good in Java...
No no.. the issue is the fucking Android SDK and the mix-and-match documentation available online!!!
Every fucking time I want to implement some sort of UI element, user action or a background service and I start googling how to do it It comes with with at least 3 different stack overflow solutions, all of them saying "that way of doing it is deprecated, instead you should X" and looking up the OFFICIAL FUCKING DOCS it will just make me roll up in the corner and cry because of how fucking inconsistent it is and the retarded domain language it uses... fucking transactions for fucking fragments inside fucking activities... because I guess the word "screen"/"view"/"template" or something similar natural just was too mainstream for the all knowing alphabet soup that google is...
And then you start looking up what the fucking difference even is and how to code it up only to find out there's at least 12 other opinions on how fragments should be used and what should be an activity and what should be a damn fragment...
But that's not all, that's just the base... I get a headache even thinking about how the fucking inflating of templates and the entire R. notation works. You want to open a fucking tiny corner menu with the settings options? WELL THEN YOU FUCKING BETTER REMEMBER TO IMPLEMENT IT THROUGH SOME SORT OF EVENT AND INFLATE THE MENU YOURSELF EVEN THOUGH ITS THE SAME FUCKING THING WITH STATIC STRINGS...
AND WHY THE FUCK DO I NEED LIKE 4 NEW FILES TO IMPLEMENT A FUCKING LISTVIEW...
also talking about ListViews... what was wrong with "ListView"... Why do we need a "RecyclerView"... oh right... because the fucks fucked the fuck up and all the legacy components were designed by a monkey and are next to useless! SO WE NEEDED A NEW NAME FOR THE FIXED VERSION, CANT NAME IT LISTVIEW AGAIN... FUCK YOU...
honestly... if I got a dolar for every "what the fuck android" I said during trying to understand that mess I'd be richer by a few hundred...
oh oh oh, but you know what? You don't like the android SDK? that's fine, you can use fucking React or Flutter or something... yeah.. because instead of torturing myself with the android SDK I want to torture myself with an abstraction of the same SDK and JavaScript as the fucking cherry on top... HAVE YOU FUCKING SEEN THE CODE FLUTTER SHOWS ON THEIR WEBSITE AS THE "Introduction" ?!!!
Look at this piece of shit:
[code in attached image, we could really use a proper Markdown support at least for rants]
THAT'S NOT EVEN THE ENTIRE THING, THAT'S JUST THE *REALLY* UGLY PART...
The fucking nesting... What is it with JS and all the fucking nesting everytime?! It looks like shit.... It reads like shit as well...
WHY, in the name OF FUCK, IS THERE MORE THAN 5 ANDROID FRAMEWORKS and ALL of them... used this FUCKING NOVEL idea of programming using A FUCKING BRACKET WALL
It always looks like:
(code(code[code{code(code{code()})}]));
If I wanted to make a fucking app or a website using fucking Haskell I'd do that.... at this point reading assembly code feels like heaven compared to this retardation... Why is this so popular?! WHAT DO YOU PEOPLE SEE IN IT?! Clearly it's not the aesthetics... it looks like a fucking frog vomit running down an emus leg, fuck that.... I don't even hate classic JavaScript, it's a good enough language and it does what I tell it to... but these ugly fucking frameworks like react, angular and whatever else uses this fucking format can go fuck right off. This is not the way JS is gonna get a better name for itself...
So:
Fuck Google
Fuck the marionette that designed the Android SDK
Fuck the Hellspawn the came up with the "functional-like" way of using JavaScript
Fuck everyone that thinks "JavaScript everywhere" is a good thing
And deeply future-fuck everyone that makes a new framework following any of these standards, stucks a .js at the end of the name and releases his hairball.js of an invention into the fucking world....
It's a mess... fuck everything android related...14 -
Folks...
I think I need to get away from web development...
Honestly, no grudge held against web/mobile development itsef... But the projects, the teams, the workflows... It's always shitty af.
I'm fed up with the bad architecture, poor management decisions, unmaintained legacy code, broken windows, arrogant juniors, arrogant seniors, code smells left to rot, the freaking red door... Hell! The fucking "we don't have time for that" answer to testing... Damn!
Been there done that.
Feels like it's always the same crap and unfortunately, it's rare to start a professional project from scratch.
Fucking angular, broken piece of shit.
Fucking react (& RN) community modules, broken pieces of shit.
Fucking lazy-ass node developers.
Fucking ES and fucking garbage proposals submitted to the TC39.
I wish I could do Haskell / Rust / Clojure professionally... I could even enjoy Go with a good team... Anything but that huge pile of dogshit JS and its community of brainfucked so-called developers.10 -
This week I reached a major milestone in a Machine Learning/Music Analysis project that I've been working on for a long time!!
I'm really proud to launch 'The Harmonic Algorithm' as an open source project! It represents the evolution of something that's grown with me through two thesis' (initially in music analysis and later in creative computation) and has been a vessel for my passion in both Music and Computation/Machine Learning for a number of years.
For more info, detailed usage examples (with video clips) and installation instructions for anyone inclined to try it out, have a look at the GitHub repo for the project:
https://github.com/OscarSouth/...
"The Harmonic Algorithm, written in Haskell and R, generates musical domain specific data inside user defined constraints then filters it down and deterministically ranks it using a tailored Markov Chain model trained on ingested musical data. This presents a unique tool in the hands of the composer or performer which can be used as a writing aid, analysis device, for instrumental study or even in live performance."1 -
This one isn't so much a rant but a short story about how small the world is.
Basically, I am a college student and I've fallen into the "Thinkpad Hipster" Group, more specifically the guy who runs Linux ( Arch, in this case ) learns some mostly irrelevant language, in this case Haskell, which while useful isn't really relevant in the modern world.
So this is where the story begins, I am sitting on the train to college and I am reading through a book on Haskell on my X240, so all is fine, when I notice some guy sitting in front of me who looks like an older version of me, I then notice that he's also using a Thinkpad, now I'm curious as to which, because I love the laptops, I see he has an X240 Aswell, oh, sweet, eventually he gets up to go to the toilet and looks over my shoulder at my laptop screen and sees that I'm learning haskell, when he comes back he begins to try and help me, which I was surprised at because so few people would know the language, when he showed me his laptop he was running almost the same setup as me, it was similar to a "Glitch in the Matrix" Moment, I truly didn't expect anyone to be running near the exact same stuff as me, look so similar and also be in the same area as me, that made my day knowing that some people also do the same stuff as me.9 -
Just started learning haskell and if someone wants a 'why' I give you quicksort:
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs12 -
I don’t like to judge people based on what languages they like (because I like all of them). But I can’t deny the pattern anymore.
Smart people know and enjoy smart languages: Smalltalk, OCaml, Clojure, Lisp, Haskell, etc. They may use JavaScript or PHP to make money, but ask them to code in their smart language and they’ll be more efficient. Getting old, some of those people say “screw it” and find a Haskell job.
You, my friend, are not one of those people. You are VSCode-dwelling goblin who thinks lambda calculus has something to do with JS arrow function notation, is scared of reduce() and not even good at the single fucking language they know.
Insta coders and that mechanical keyboard collector dorks are not “superstars” you got to be like.11 -
There are two types of programming languages, one that everybody hates and one that nobody uses.
Finally understood this after learning Haskell.1 -
Everywhere you go, you find these memes where developers are skeptical of their work. Things like "It works. I don't know how. It doesn't work. I don't know how.". Don't you guys think this is a huge problem? And people say that their programming language is the best, because preference. But isn't this happening because our tools suck?
Yes the problems maybe inherently complex but at least we should be able to figure out the logic behind the snipper and reason about it.
Haven't really experienced it, but they say Haskell and the likes are great at this and it must be true because it's backed by mathematical properties and laws, not " experience".
So the rant here is, wish we had better tools in the mainstream that allowed us to enjoy absolute faith in at least what we have written, regardless of the fact that we understood the problem in the domain.11 -
Is it just the novice in me that finds the Haskell community's misguided obsession over character count really annoying? Learn You a Haskell For Greater Good states
> Shorter code means less bugs
A lot of people and resources seem to share this opinion, but it's obviously false. Simpler code means less bugs, but look at this function which just means "apply this applicative to each element of a list"
> sequence :: (Applicative f) => [f a] -> f [a]
> sequence = foldr (liftA2 (:)) (pure [])
This isn't "less buggy", it's fucking madness. The same in JS, the king of unreadable languages, would be:
function sequence(seq, val, apply = (f, x) => f(x)) {
seq.map(f => apply(f, val))
}
Seriously, how can you design a strictly typed language that gets beaten by JS in readability?16 -
My 13yo brother started learning Haskell and latex on his own. When I was 13yo I learned C. I really want to see how his career path will go compared to mine3
-
So, this is probably somewhat esoteric but...
While studying at university I had a "programming paradigms" module, dunno why they called it that, it was more like "introduction to functional programming".
So, it's kinda mind bending, we'd only really started to get our heads around classical object oriented programming and they throw functional programming at us.
It's worse than that though, for do they use an established language, like lisp/scheme, functional Python, or even given Haskell?
No, of course they didn't. They taught us Oz.
You probably won't have heard of it, but this language is burned into the back of my brain, along with a vague understanding of the n-queens problem we had to solve graphically (using qTk, which I dunno if someone took qt and tk and blended them, I stopped asking questions after a while).
To top it off did this language (at the time) have a stand alone interpreter? Did it buggery! It was coupled to the Mozart programming system, which is just Emacs (which has a bloody lisp built into it,so close, yet so far 😭).
It gets worse, though, oh does it get worse, for pause dear reader and consider, have you ever heard of Mozart/oz before, I'd put money on most of you had not heard of it until today.
For, you see, I believe at the time of writing, one, yes, ONE text book exists on this language. When I was doing my assignment there was merely some published conference notes and language design documents.
That's not all, I was not the only one experiencing difficulties with this language, someone in the class ended up pouring through the mailing lists and found the very tutor teaching the class struggling at first to understand the language.
I had to repeat that year. The functional programming class was one semester.
When I retook that year, it was a whole year long. However, halfway through the year, original tutor was fired and a new tutor was hired to teach the language.
He was, understandably, just as confused as we were.
There was a Starbucks and a pub equidistant from the lecture hall, though in opposite directions. From lecture to lecture we had no idea which one we'd end up in.
I have reason to believe Mozart/Oz it some sort of otherworldly abomination designed to give students the occasional nightmare flashback, long after they've left.
My room had post it notes, sheets of paper, print outs, diagrams, doodles and pens, just stuck to the wall, I looked like a raving lunatic three hours away from being institutionalised. There was string connecting one diagram to the next and images of a chess queen all over. As I attempted to solve the n-queens problem.
Madmans knowledge, I call it. I can never unlearn all that, in fact it seeps into much of the code I write. Such information was not meant for the minds of a simple country bumpkin such as myself...
Mozart/Oz... I wouldn't be the programmer I am today without it, and that's frankly terrifying...10 -
In a getting started tutorial about Haskell:
"You probably already have haskell installed because you tried to learn it once and failed"
He's so right...1 -
Apparently, floating point math is broken.
=SUM((2.1 - 2.0) - 0.1)
In PHP and Haskell this also happens10 -
fuck me. I started the night with the question "what are classes, in JavaScript?", did a lot of reading, and just came to the conclusion "religious colonialism.", and I didn't even read a single Crockford essay.
I'm just going to give up, go learn Haskell, get a lambda tattooed on my ass, and be done with it. -
This belongs to the small bunch of things that makes me feel that life is beautiful.
For a pretty long time, I wanted to learn Haskell, and recently I really fell in love with the category theory. Now how exciting is that when you found that you can learn them both?
I just started it, and I guess it's a pleasure for any programmer who doesn't whine about math. It's free to read:
https://bartoszmilewski.com/2014/...
Or to build 😉
https://github.com/hmemcpy/...4 -
Primarily IntelliJ IDEs.
I'm using IDEA for Rust & Kotlin, PHPStorm, Datagrip (DB), and sometimes PyCharm CE.
IDEs can feel a bit dirty with how heavy they are, and the lack of customization/control. But at the end of the day there's just nothing that can measure up against IntelliJ's inspections, integrations and project indexing.
My ideal product would be one universal IntelliJ IDE, but combined with the openness of VSCode/Atom, having everything transparently configurable through stylesheets and scripts.
As an editor though.... I use Vim for LaTeX, Markdown, plain text and Haskell code... but not so much for other programming languages.
Vim was my first editor when I moved from C64 to PC development 25 years ago, and while you get used to balancing keybind vimgolfing with being actually productive, i've always found maintaining plugins and profiles too cumbersome -- the reality is that Vim is an awesome TEXT editor, but it's really awful as a CODE editor out of the box.
When you want to try out a new programming language, you don't want to have to mess around with your Vimrc and Vundle and YCM for half a day just so you can comfortably write "Hello World" in Rust or Elixir... you just want to click one install button, press F10 to compile and see if it flies.
Oh, and I use Xed a lot for quickly editing files... because it's the default GUI editor on Mint desktops, and it's quite good at being a basic notepad.1 -
-> Contribute to Zulip's mobile app on github.
-> Contribute to babel.
-> Build 5 npm packages.
-> Dive into Haskell.
-> Have 100,000 ++s on devRant😁
-> Make a private project I built on github public.(still thinking about it).4 -
Main language, do people have such a thing? Some quixotic shit about various languages I use:
C#: Microsoft
F#: never quite committing to 100% functional paradigms while still being one of the most enjoyable langs I use
Java: null handling via optional and maybes are ugly, but better than it was
C++: surprisingly functional in 2020
Haskell: no one else seems to ❤️ it, despite it being fucking beautiful
Kotlin: Ternary warfare, Czech sports opinions on how languages should work
Clojure: parenthetical scoping makes me far happier than it should
Typescript: makes ever more sense as it changes7 -
!rant
I've discovered https://repl.it this week and it's pretty awesome!
I'm teaching my gf some python and haskell at the moment (for her fundamentals of compuer science course at university). They have to use IDLE for python and winhugs for haskell ... and it's awful.
So I was looking for something like JSFiddle for python and haskell, something you can use for a few quick lines of code.
I came across repl.it and it's great. No registration needed, many languages to choose from and a quick way to share code. Really good online IDE :-)1 -
I prefer functional style programming because it is easier to me to think in modules and functional hierarchies than it is object style shierarchies.
All in all, languages like F# and Clojure have always been fascinating to me. I wish I could find a use case for Haskell, but I can't. If anything F# is awesome to me because I already know .NET and really dig the entire framework, the strides made by Core are outstanding.
I had tried Scala before and just couldn't get into it. Far easier to just stick to Java even if I hate the idea of extending classes all over the place.
Ocaml is interesting too, but I know little to nothing about it, and Elixir looks far too much like Ruby for my taste even if I do like Ruby.
Choice is good, but sometimes overwhelming14 -
So... I cannot find me an internship which uses low level languages ( like c, c++ ) or something like elixir, rust, haskell... the only internships available are in mobile and web development...
Don’t know what to do anymore... it’s annoying, and so so frustrating... and I NEED an internship if I wanna get a college degree...14 -
Why does every Software Engineering role at the top companies never have PHP or any functional languages in it’s list of languages they want you to be experienced in?
It’s always Java, Python, C#, C/C++, Objective C or Ruby. What about Elixir, Scala, Haskell or Clojure?9 -
I found this on a wiki with Haskell Humor... it's interesting...
How to Shoot Your Self in the Foot With Haskell: Putting the unsafe in unsafePerformIO!
You shoot the gun, but the bullet gets trapped in the IO monad.
Couldn't match expected type 'Deer' against inferred type 'Foot'.
While compiling your program the compiler produces a type error long enough to overflow a kernel buffer, overwrite the trigger control register and shoot you in the foot.
After trying to decipher the type errors from the compiler, your head explodes.
After you've finally found a way to circumvent the type system and shoot yourself in the foot, Oleg appears out of nothing and shoots you in the foot for coming up with it before him.
You shoot the gun but nothing happens (Haskell is pure, after all).
Your foot is fine, until you try to walk on it, at which point it becomes mangled.
You have a shootFoot function which you've proven correct. QuickCheck validates it for arbitrary you-like values. It will be evaluated only when you end up at the hospital. You hope this doesn't come to pass, as it actually returns a bullet-ridden copy of yourself and you don't want to be garbage-collected.
foreign import ccall "shootparts.h shootfoot" shoot_foot :: Gun -> Programmer -> IO ()
shootSelfInFoot = unsafePerformIO . shoot . foot $ self -- Shoot self in foot 0 or more times depending on evaluation order
No instance for (Target Foot)
arising from use of `shoot' at SelfInflictedInjury.hs:1:0
Possible fix: add an instance declaration for (Target Foot)
In the expression: shoot foot
You go to shoot yourself in the foot but the bullet is in the ST monad and the gun is in the IO monad, so you can't.
You ask Haskell to shoot you in the foot but by the rules of lazy evaluation you don't need the result yet so it doesn't happen.
You decide to shoot yourself in the foot but get distracted devising a ballistics algebra and wondering if you can do the calculations in the type system.
You want to shoot yourself in the foot but realize there is no Gun datatype so use Arrows instead.
You shoot in the direction of your foot, but since you are inside the STM monad you can just retry until you figure out what to do.
You shoot yourself in the foot, but you are perfectly fine as long you just don't evaluate the foot.
You shoot yourself in the foot, but nothing happens unless you start walking.
Don't forget about memory consumption! If you don't look, the bullet causes heap overflow. If you look, the bullet causes stack overflow.
You *appear* to have deliberately shot yourself in the foot, and yet your program actually runs perfectly OK due to lazy evaluation. (So long as you remember to not look at your foot...)
You aim the gun at your foot, pull the trigger and remove the clip. When you look at your undamaged foot, the hammer clicks on an empty barrel.1 -
This might not resonate with many ranters here... but FUCK Taylor Otwell & Graham Campbell.
Like, not on a personal level. Maybe they're great to drink a beer with. But as framework devs... fuck everything about them.
Laravel seems so nice, it takes away many annoyances of developing in PHP. Collections are the array object you've always needed. The route bindings, middlewares, request validation objects, it's all sweet.
But eventually your company serves a few million customers, you run into specific performance problems or missing features on a deeper level. You open the issue tracker... and see a few hundred issues about the problems you are encountering, they already exist.
Some just have a short paragraph with a request for a feature, some complete PRs with tests in the style of the framework. All of them closed.
Reasons?
"We don't think anyone will ever need this"
"This seems complicated, you can just do <super non-DRY hacky code>"
FUCK YOU WITH YOUR TODO APP SNIPPETS AND USER-POST-ARTICLE EXAMPLES. I'M NOT BUILDING THE NEXT WORDPRESS. I'M DEALING WITH THE REALITY OF GRAPH DATABASE CLUSTERS, COMPLEX AUDITING LOGS AND A GAZILLION QUERIES PER SECOND.
Sigh... the problem with all these "simple" and "elegant" languages & frameworks is that they don't fucking scale.
Not because the language, server or framework intrinsically can't do it, but because the maintainers are stuck thinking in terms of their retarded non-realistic example apps.
I think I'll go back to my cave and write some Haskell or Rust to calm down.2 -
So after someone mentioned Haskell in a post, I googled it and started some kind of tutorial.
It's fun!4 -
Any Haskell programmers here?
I started to learn this language for fun two days ago and so far I find it absolutely amazing and really different to OOP languages. Most of the time the solutions make so much sense, but actually coding them requires really abstract thinking of the problem. How fast did you learn Haskell? How long it took you do code it comfortably? Any advises you can give me? I work mainly through a uni exercise sheet from a friend from a different uni, and the rest is hoogle and google :P10 -
My journey with IT learnings, Some of Major learning changes. The following are the years in which I start learning given technology or domain.
1993 Birth
1999 #HTML
2001 #PHP + Foxpro
2001 #Haskell language
2002 BASIC
2002 #8088 Assembly
2003 #Linux
2007 Visual #Foxpro
2009 #C Language
2010 #Python
2011 #JAVA for mobile #development
2015 Virtual Machines
2016 Networking
2018 #Blockchain
2019 #Elixir & Phoenix
2019 #DevOps19 -
So I just started going to university and have a subject called "programming", we are taught Java, Haskell and Prolog. Every week there is a sheet with homeworks, programming tasks. Often we get something like a boilerplate, so we implement some methods and stuff like that. Those tasks are prepared and created by scientific assistants. They upload the boilerplate and sheets. Take a look at the programming style they follow in Java. Actually I can't find a pattern they follow, except from the spacing between the lines. We are 1000 students in the informatics course, of which probably 10% know how to properly program 😅
So like 900 people see and adapt/learn this real bad coding convention. It really pisses me off, that they basically don't give a shit about convention or teaching them. I have to say that the logic some times is as worse as the conventions 😓
Besides I am not cocky with conventions, but I think at a high-class university they should teach proper convention.17 -
For every feature added, two are requested.
- Spencer White
PLEASE PLEASE PLEASE ADD A HASKELL DUCK3 -
I work with J2EE every day, especially Spring and Spring Boot.
I like it very much but when I am home I love tinkering with C++ (even tough I am a beginner in this language).
Is anyone else like this? It's like C++ has a misterious charm for me, not sure why. I also enjoy haskell and erlang, but keep at getting back at C++.7 -
Hey everyone!
I'm on the hunt for new and exciting languages!
I'll state the ones I already know:
Python, Haskell, C(++), C#, Java, JavaScript, Ruby, Rust, Lua, about every kind of Basic, some branches of Lisp, BrainF**k, assembly, Octo (Chip-8) and GML(basically JavaScript).
I've also learnt some styling languages:
Html, CSS, Markup and Markdown.
Some misc languages too: Regex and a runny bit of the Wolfram Language.
Also I'm kind of limited to Windows, Linux and Android, as I do not own any Apple hardware except I have access to an old iPad, so are languages like Swift still good?
Thanks!28 -
I see more and more people encouraging people to learn Haskell. But why ? What can you do with it, that you would not do with another language? what have you done with haskell?7
-
rant :: [Char] -> DeveloperHappiness
Don’t really have anything to say. Just currently learning me a Haskell and attempting to replace WSL’s Ubuntu with Arch Linux. Carry on.8 -
Why is it that virtually all new languages in the last 25 years or so have a C-like syntax?
- Java wanted to sort-of knock off C++.
- C# wanted to be Java but on Microsoft's proprietary stack instead of SUN's (now Oracle's).
- Several other languages such as Vala, Scala, Swift, etc. do only careful evolution, seemingly so as to not alienate the devs used to previous C-like languages.
- Not to speak of everyone's favourite enemy, JavaScript…
- Then there is ReasonML which is basically an alternate, more C-like, syntax for OCaml, and is then compiled to JavaScript.
Now we're slowly arriving at the meat of this rant: back when I started university, the first semester programming lecture used Scheme, and provided a fine introduction to (functional) programming. Scheme, like other variants of Lisp, is a fine language, very flexible, code is data, data is code, but you get somewhat lost in a sea of parentheses, probably worse than the C-like languages' salad of curly braces. But it was a refreshing change from the likes of C, C++, and Java in terms of approach.
But the real enlightenment came when I read through Okasaki's paper on purely functional data structures. The author uses Standard ML in the paper, and after the initial shock (because it's different than most everything else I had seen), and getting used to the notation, I loved the crisp clarity it brings with almost no ceremony at all!
After looking around a bit, I found that nobody seems to use SML anymore, but there are viable alternatives, depending on your taste:
- Pragmatic programmers can use OCaml, which has immutability by default, and tries to guide the programmer to a functional programming mindset, but can accommodate imperative constructs easily when necessary.
- F# was born as OCaml on .NET but has now evolved into its own great thing with many upsides and very few downsides; I recommend every C# developer should give it a try.
- Somewhat more extreme is Haskell, with its ideology of pure functions and lazy evaluation that makes introducing side effects, I/O, and other imperative constructs rather a pain in the arse, and not quite my piece of cake, but learning it can still help you be a better programmer in whatever language you use on a day-to-day basis.
Anyway, the point is that after working with several of these languages developed out of the original Meta Language, it baffles me how anyone can be happy being a curly-braces-language developer without craving something more succinct and to-the-point. Especially when it comes to JavaScript: all the above mentioned ML-like languages can be compiled to JavaScript, so developing directly in JavaScript should hardly be a necessity.
Obviously these curly-braces languages will still be needed for a long time coming, legacy systems and all—just look at COBOL—, but my point stands.7 -
One language that I have always wanted to give more attentio to but felt as if I was in a constant fight was Haskell.
To me it felt unintuitive, and required a MAJOR shift in practice to get going. I really wanted to give it a chance but could not.
Every other language felt natural(even Lisp) but haskell for some reason seemed like a major mindfuck)41 -
I’m from Komi Republic. In Komi language (it’s entirely different from russian), “Komi airport” is видза корам коми мулöн юркарö, pronounced “vid-zah koraam komi muh-loan yur-kah-roah”.
And you said Haskell was difficult4 -
For context, I've been working for a couple years now with Rust, and, I have to say, the experience has been astoundingly pleasant. The language is both incredibly productive and meets each of my use cases and stipulations regarding speed, safety, and complexity. That said, I've come to beg the question, "what is the point of functional languages like Haskell?" To me, what seems attractive about Haskell is the inherent thread safety, and the added syntactic niceties of code written in the language. However, one must keep in mind, my experience with Haskell has been pretty limited, simply due to the massive learning curve that the language presents. Such a "learning curve" brings me to my central point: these days with languages like Rust which bring together the best from functional and imperative worlds, it seems like functional languages are becoming increasingly irrelevant. Let's face it: no sane person will choose to learn a functional language as their first language, outside of academia and mathematics, and OOP/OOP-like languages remain dominant in the space. So, why then, is Haskell any different? What benefit do languages like Haskell pose in the modern CS space that thread-safe, non-GC languages don't already provide?2
-
Not sure if I love or hate haskell... It's awesome, but then again the syntax is so fucking confusing...5
-
!rant
so the other day i was programming and suddenly i wanted to learn haskell. (i don't know why it hit me so suddenly, maybe because it's a 'pure' functional programming language and these 2 terms i knew nothing about)
and to be honest it's really hard coming from an imperative programming language (C/C++, yes, i know they are different in their ways). it's like learning to program again! you really have to get a different mindset and for me honestly it's hard to grasp the idea that 'variables' are immutable! like, that's soooo weird it still stucks to me. for example how did they define the max or min function without using a while loop? what are monads?
I am just 2 days in but it'll be a fun ride!6 -
I'm genuinely shocked at the number of people I see on here bashing automated testing as a waste of time, simply because my entire career has taught me the opposite (and it's usually only non-technical managers I see who don't want to see "time wasted" writing tests.)
I'm also just as genuinely curious - what do you guys do instead? Just don't test and deal with production issues as they occur? Pass it off to a separate UAT / human-based testing department and let them sign it off? Assume that because you're using Haskell / some other discipline it'll work if it compiles?14 -
devRant.. I need your help.
So for the last year I've been self teaching myself python, go, & haskell. I've really been enjoying myself, to the point we're I would like to make it my career. Insert problem, I stumbled upon ECU(engine control unit) reprogramming & flashing, and instantly fell in love with the idea. However I can not find any information it. Every college I've called talks to me like I just asked them to teach me witchcraft.
Does any dev have experience with ecu programming? How did you get into it?
Thanks!5 -
That moment when you're very happy you just completed a hard Haskell kata in CodeWars, with 8 lines, three functions, a lot of functional concepts (which would take at least 30 lines in Java or C#) and they show you the top voted solution by another user with JUST TWO LINES and a lot of function composition.2
-
my brain feels like an AI. It just slices things it sees and layers them over and over again. It doesn’t even change things, leaving them pristine and intact, it doesn’t filter stuff out. I cite memes exactly, word by word, with the exact intonation, because I literally just lip syncing to that meme playing in my head as if I was watching a youtube video. Some days I’m not even conscious of my surroundings, I don’t realize where I am, what I do, I’m just caught in that process I can barely put in words. People ask me to do something for them, I do it, and they’re like “no! it’s not what I asked for, well, it is, but not in this sense!” If they asked me if I could make their company the most profitable one in their niche, my brain will probably decide to instead sink and destroy other companies there. All that unspoken, “common sense” knowledge, I don’t understand. I feel detached, as if everyone else was “in” on something, some common notion, meanwhile I’m alone with my perfect things. I feel like a perfect Haskell codebase trying to interact with biker bar gloryhole dirty equivalent of an API. I want things to be exact, I want things to be precise, I want words you say to have specific meaning that I can understand, and I’ll ask you even though it takes overcoming my anxiety and guilt for asking “stupid” questions. If you throw in some clue, my brain will generate a Vsauce video worth of elaboration on that, and I’ll just tell it to you. Sometimes I feel like I just don’t fit, I can’t have fun at party with other people, if there are more than five of them, I’ll probably cry for no apparent reason. My consciousness operates smoothly, and then it don’t, it overheats, crashes and burns, then comes the numbness and derealisation.
I’m not okay. Now more than ever, I sometimes want to just end it.5 -
Setting up a Haskell environment on Windows is fucking AIDS. Guess I'll screw it and just use ANTLR for my compiler.6
-
So guys, do you think I should learn one functional programming language and if so should it be haskell?2
-
!!rant
Types of elitists in the computer science area I REALLY HATE:
* Linux kernel developers: if they hear anything that's not linux you will be prosecuted
* functional programing developers (haskell, scheme, etc): they will bitch slap you if you even dare to mention php or javascript5 -
If you're working on close to hardware things, make sure you run static analysis, and manually inspect the output of your compiler if you feel something's off - it may be doing something totally different from what you expect, because of optimization and what not. Also, optimizations don't always trigger as expected. Also, sometimes abstractions can cost a fair amount too (C++ std::string c/dtor, for example, dtors in general), more than you'd expect, and in those cases you might want to re-examine your need for them.
Having said all that, also know how to get the compiler to work for you, hand-optimization at the assembly level isn't usually ideal. I've often been surprised by just how well compilers figure out ways to speed up / compactify code, especially when given hints, and it's way better than having a blob of assembly that's totally unmaintainable.
Learnt this from programming MCUs and stuff for hobby/college team/venture, and from messing around with the Haskell compiler and LLVM optimization passes.3 -
So, I'm supposed to do a project in Haskell that is due next week. It's a group project and it's me and 2 colleagues. Unfortunatelly one of them had to drop college because of some personal problems. I feel bad for him.
The thing is, the other one has no clue what Haskell is. I mean, he has no clue how programming is. He doesn't even know what an array is, like, wtf.
Sure, I can do the work all by myself and take the credits for it. But he's a nice guy and has been asking me to teach him Haskell in my spare time. He even told me to tell the teacher I did the project all by myself.
I'm kind in the middle of an existencial crisis. What should I do?
Life sucks, dam.8 -
!advice
So I've been self teaching myself Python, which I've loved learning. However I hit a wall. I'm terrible with large project ideas, which has brought everything to a halt.
Being that I loved learning python, I'm thinking of picking up a second language to fill the void & expand my knowledge. I've dabbled a little bit in Java & Haskell. Go looks pretty interesting.
In your opinion what would be a good complementary language to Python?8 -
Anyone in here successfully using a pure FP language/ecosystem on their day to day?
I know of one of you that uses Scala, and myself I have an (admittedly) shitty application at work running in Clojure. These last two languages I mentioned are not pure FP.
I am talking about the likes of PureScript, Haskell, etc. Those mfkas.
If so,what is your experience working in said paradigm? I tried to keep my Clojure program as pure as possible, I failed, but enjoyed it.
And I know that FP is not a silver bullet, but in some scenarios when properly applied it can work beautifully. I also have React based applications with pure components, but Javascript itself is neither a functional(pure or otherwise) programming language, it merely supports functional paradigms.
Just wondering, no flamewars or anything like that, I just want to know your pros and cons.6 -
It's been 5 years this month since I started learning programming, getting interested after learning about Linux, wanting to do operating systems and games.
I started with C++, went on to C and assembly language for about 2 years and gave up on it for the most part.
Afterward did Java for two years and hated every second of it! Switched to Python instead (been using it since 2.7.5).
Now I do Haskell and JavaScript and those languages do everything so much easier I can never see myself ever going back!2 -
Today I discovered that Haskell can be compiled to js. This is both wonderful and disturbing: having the strengths of Haskell feels right and encouraging, but having to transpile it to js feels unnaturally dirty.
Still, I'm not sure I can apply this at my job in any future, but I might have just the case in the brewing.7 -
Tools are made for various audiences. Git is the de-facto standard for version management, so it can be complicated because people will still learn it (they more or less have to). Editors aren't as standard and they are to be used from the minute you start learning, so they have to at least be usable without a course or a handbook. I prefer the first type of tool because to use something really good I don't mind reading a book. Programming languages can fall in either category; Python was meant to be used by laics and is therefore very simple, sacrificing a lot for the sake of simplicity. Rust isn't meant to be used by anyone who isn't trained, and it comes with a great book that explains all the most important gotchas. Haskell doesn't have an official book AFAIK, but it has the best wiki I've ever seen in a programming language.
-
!rant
For all of youse that ever wanted to try out Common Lisp and do not know where to start (but are interested in getting some knowledge of Common Lisp) I recommend two things:
As an introductory tutorial:
https://lisperati.com/casting.html/
And as your dev environment:
https://portacle.github.io/
Notice that the dev environment in question is Emacs, regardless of how you might feel about it as a text editor, i can recommend just going through the portacle help that gives you some basic starting points regarding editing. Learn about splitting buffers, evaluating the code you are typing in order for it to appear in the Common Lisp REPL (this one comes with an environment known as SLIME which is very popular in the Lisp world) as well as saving and editing your files.
Portacle is self contained inside of one single directory, so if you by any chance already have an Emacs environment then do not worry, Portacle will not touch any of that. I will admit that as far as I am concerned, Emacs will probably be the biggest hurdle for most people not used to it.
Can I use VS Code? Yes, yes you can, but I am not familiar with setting up a VSCode dev environment for Emacs, or any other environment hat comes close to the live environment that emacs provides for this?
Why the fuck should I try Common Lisp or any Lisp for that matter? You do not have to, I happen to like it a lot and have built applications at work with a different dialect of Lisp known as Clojure which runs in the JVM, do I recommend it? Yeah I do, I love functional programming, Clojure is pretty pure on that (not haskell level imo though, but I am not using Haskell for anything other than academic purposes) and with clojure you get the entire repertoire of Java libraries at your disposal. Moving to Clojure was cake coming from Common Lisp.
Why Common Lisp then if you used Clojure in prod? Mostly historical reasons, I want to just let people know that ANSI Common Lisp has a lot of good things going for it, I selected Clojure since I already knew what I needed from the JVM, and parallelism and concurrency are baked into Clojure, which was a priority. While I could have done the same thing in Common Lisp, I wanted to turn in a deliverable as quickly as possible rather than building the entire thing by myself which would have taken longer (had one week)
Am I getting something out of learning Common Lisp? Depends on you, I am not bringing about the whole "it opens your mind" deal with Lisp dialects as most other people do inside of the community, although I did experience new perspectives as to what programming and a programming language could do, and had fun doing it, maybe you will as well.
Does Lisp stands for Lots of Irritating Superfluous Parentheses or Los in stupid parentheses? Yes, also for Lost of Insidious Silly Parentheses and Lisp is Perfect, use paredit (comes with Portacle) also, Lisp stands for Lisp Is Perfect. None of that List Processing bs, any other definition will do.
Are there any other books? Yes, the famous online text Practical Common Lisp can be easily read online for free, I would recommend the Lisperati tutorial first to get a feel for it since PCL demands more tedious study. There is also Common Lisp a gentle introduction. If you want to go the Clojure route try Clojure for the brave and true.
What about Scheme and the Structure and Interpretation of Computer Programs? Too academic for my taste, and if in Common Lisp you have to do a lot of things on your own, Scheme is a whole other beast. Simple and beautiful really, but I go for practical in terms of Lisp, thus I prefer Common Lisp.
how did you start with Lisp?
I was stupid and thought I should start with it after a failed attempt at learning C++, then Java, and then Javascript when I started programming years ago. I was overwhelmed, but I continued. Then I moved to other things. But always kept Common Lisp close to heart. I am also heavy into A.I, Lisp has a history there and it is used in a lot of new and sort of unknown projects dealing with Knowledge Reasoning and representation. It is also Alien tech that contains many things that just seem super interesting to me such as treating code as data and data as code (back-quoting, macros etc)
I need some inspiration man......show me something? Sure, look for a game called Kandria in youtube, the creator, Shimera (Nicolas Hafner) is an absolute genius in the world of Lisp and a true inspiration. He coded the game in Common Lisp, he is also the person behind portacle. If that were not enough, he might very well also be Shirakumo, another prominent member of the Common Lisp Community.
Ok, you got me, what is the first thing in common lisp that I should try after I install the portacle environment? go to the repl and evaluate this:
(+ 0.1 0.2)
Watch in awe at what you get.
In the truest and original sense of the phrase (MIT based) "happy hacking!"9 -
Do you guys know a cool language to get a bit more into functional programming?
Doesn't matter if purely functional or a mashup of functional and imperative programming.
And please a real-world language, let Haskell stay in its Ivory-tower where it belongs.11 -
*opens up a library file, reads first line*
{-# LANGUAGE TemplateHaskell #-}
Oh boy, this is gonna be intense...
I always dread having to go through Template Haskell code. -
I'm not sure if he's mentioned already, or if he's"famous" at all, but I'm a fan of Joey Hess.
Once I saw his name on some of old debian man pages and for no apparent reason, I looked up his name and found his home page.
He was a motivation for me to start learning Haskell, and also I was damn envious of his awesome lifestyle.
See shy jo at https://joeyh.name -
And another weekend full of work, because I don‘t get shit done in the office.
Being kind if the lead dev in my team, everyone is coming to me for nearly everything and I rarely have time to work on my current ‚fulltime‘ project.
It‘s really frustrating. I just want to code .__. FML
(Maybe I should learn other programming languages and switch jobs? I always wanted to learn Haskell)2 -
Personal favorite quotes from my cubemate...
- JIRA, God of Blunder!!
- trickle-down badge-o-nomics: when I have to ask someone else to lend me their badge because someone else borrowed mine
- Haskell users can kick a motherfunctor right in the monads
- You can't put monads in Go because they try to prefix everything with go-
- Always use live rounds when troubleshooting -- never blanks
- Equifax's Apache wasn't patchy enough
- I saw the last episode of the first season of The Last Kingdom
- You gnow it's good cause it's GNU1 -
!rant
You knoe, my first insights into computer programming came out of spite. I thought windows to be garbage and wanted to blame someone other than myself for my machine constantly crashing. Thus I discovered programming and down the rabbit hole. But my interest in computer science came from videogames. Portal in particular. I found the idea of GlaDOS fascinating and thought that artificial intelligence would be something interesting to research. The web then gave me Lisp, and boy was the language different from all the other languages I went through. I remember feeling super excited when Racket, Common Lisp and eventually Clojure would help me discover many different ideas. Every time I work with reduce or maps or stuff like that in other languages I always thank languages such as Clojure for having me descipher different ways of manipulating data to get a result. To this day I feel sad whenever I find that my languages do not have the same constructs that Clojure has. I mention Clojure because it is my favorite flavor of Lisp. But one thing that always remains grest to me is firing up Emacs and plugin my code to Slime or Cider and see the repl pop up waiting for something to happen. This feeling is beautiful.
Please guys, if you have not tried it, do so! You might hate it at first or push it aside. But trust me, once you get it it will really change the way you think about programming in general. Try the great Clojure for the Brave and true, and go through the third chapter succesfully. If you do not like Lisp by them then no harm done! You would at least know that there are other options.
Now, here are some cool things:
For the standard implementation, try Common Lisp
For a more modern Scheme, try Racket or Guile
For targetting the JVM try Clojure (more akin to Common Lisp) or Kawa (scheme like)
For the python AST get Hy (pun totally intended)
For JS try Clojurescript
For emacs scripting try Emacs Lisp (has way too many disasdvantages but still relatively close to common lisp)
Honorific mention to more pure functional programming languages for Haskell, F#, Ocaml.
Also worth mentioning that Js , Ruby and Python have great functional constructs.
(println "you will not regret it!")2 -
If I could, I'd attempt to create an ideal language. I'd aspire that its features would be:
-The easyiness of Python
-The library ecosystem of Javascript
-The readability and cross- platformness of Java
-Functional features of Haskell
-Modularity of Lisp
-Low level features of C/C++
-Powerful with strings and data, like Perl
-Both compiled and interpreted, with REPL
Anything missing from your favorite languages?9 -
Today I read a comment on devRant about somebody asking what 1337 means. I think most of us know (almost trivial, maybe?), but what is really great is that so many people replied explaining what it means. Some replies were awesome, some were creative, some were just a basic answer to the question.
But none were hateful. ❤️
DevRant is a place for awesome people like you who understand that every one of us doesn't know something every day. That's developer life. That's devRant life too! The other day I told a senior developer about a Haskell project of mine and he asked: 'What is Haskell?' I was impressed, but it taught me a lot.
On devRant I see no troll comments like 'omfg fucking retard, you must be a faggot and live in a dumpster', which are common on the www nowadays and could have been found under a question like 'what is 1337?'. But not here. And this, while I see the occasional swearing in rants, but never at other members.
So thank you for just being normal people among other normal people. We swear at each other's fugly code sometimes, but we are a creative bunch of smart asses that stay classy at it.
👊4 -
Should I learn Haskell? Would it help me with other coding languages as well?
My main language is JavaScript, also I would like to learn functional programming.2 -
Maybe Rant
It's 1:30 AM and I finally finished implementing a simple function after more than an hour.
Not sure if I should be upset about my stupidity or glad that I solved it.
If anyone is interested in learning Haskell I totally recommend these exercises: https://github.com/data61/fp-course
filtering :: Applicative f => (a -> f Bool) -> List a -> f (List a)
filtering p = foldRight (\a -> lift2 (bool id (a:.)) (p a)) (pure Nil)1 -
One advantage of being reasonably proficient with Haskell is being able to very quickly create maintainable programs, often without needing to write extensive documentation.
One disadvantage of having Haskell as a favourite programming language is sometimes looking like a pretentious ass.
But just read the type definition and think for once, idiot. How could "Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r" confuse even a beginner to computer programming, nonetheless Haskell?3 -
Starting to learn Haskell/type theory. I have put it off long enough and I hope this time I can get past the 5 minute intro/overview.
So far the only functional programming I have done is trying to write/use functions that take state in parameters only and limiting side effects (that I know of).
Expecting to have my mind blown and to get a monocle too.3 -
Is it just me, or does it seem like worse languages get more usage than better ones? Like, how many people know Haskell vs. Python? A lot of people dislike JavaScript, but why is it so damn popular then? And why didn't presumably superior Dart replaced it on the web, even with Google's support and lobbying?
I think the reason is that every language has vocal critics, and when a lot of people use a language, there will be a lot of such critics. When a certain critical mass (no pun intended) is accumulated, it begins to look like everything you can read online is bad things. Of course, the language being worse than some other hip language doesn't help.
What do you think?3 -
I don't know if this can be classified as a legit "regret" or not, but anyway (hence no wk78 tag).
I've always chosen to focus more on the theory behind computers and computing rather than on practical dev skills. Not saying that the more theoretical things aren't fun - concepts from theoretical CS and maths still regularly blow my mind, as do the more "esoteric" languages like Haskell, Idris, and Coq. However, after seeing you fine folks here at dR talk about practical development, it feels like there's a whole world of stuff that I've missed about computers and programming, especially web programming. I think I'll tackle that next when I have some free time, maybe spend some time learning PHP to see what all the hate's about... (really though, it must do something right if it has such a huge userbase, plus, I think devRant uses it too...?)
Anyway, just wanted to say that you folks are really cool and an awesome source of inspiration. Best community ever.3 -
Developing in Haskell. Lecturer is assuming we all use Windows. Some of us are better than that...but only some.7
-
Functional Programming Class, an assignment it's that we should develop a calculator, creating our own basic functions (addition implementation with a half-adder and string manipulation).
Teacher tolds us that it has to be coded in Haskell and for the GUI we can use whatever we want, then this fucktard comes around and speaks like he knows everything
Him: Oh, yeah we will use IntelliJ to link the Haskell code with a GUI, because IntelliJ supports Haskell
Me: But IntelliJ it's a(damn) IDE, you still need to code the GUI.
Him: But IntelliJ supports Haskell, we will use it to build the GUI.
Me: Yet what you're trying to say it's that you will use Java to create the GUI and call from there Haskell, and that you will use IntelloJ forms to create the UI
Him: No, no, we're not using Java, we will use IntelliJ, are you dumb? Don't you know what's IntelliJ for?
*Fucking facepalm*
I don't know but at this point I'm not feeling proud that THIS kind of retards are going to graduate in this year...3 -
Selectively searching for an ocaml or scheme job cuz I'm in my 30s and life's too short to waste on all the other nerve wrecking shit. I'd do Haskell but hell might as well freeze before I find something2
-
Playing with Haskell and almost pulling my hair out. Some thing works, switch place of a call and I get weird errors. Baaaaaah1
-
Stop making fun of different programming languages
C is fast
Java is popular
Ruby is cool
Python is beautiful
Haskell is Intriguing
Javascript is ________14 -
Everyones like "python is pseudocode" but honestly i dont see it, after sql, python is the least intuitive syntax i ever worked with, and i frequently use haskell so4
-
I'm studying atm and I survived Haskell, SKI, ... now, in the second semester we started with Python (yeay ♡) and Java (that's fine).
One of the first exercises is about installing Jython ('cause it's good, right? /sarcasm off), using the lecturer's module and write some code for it. It's about painting some shitty graphics *gasp*...
I use PyCharm (not really necessary for these crappy exercises) and programming on Windows and/or Linux.
Downloaded Jython, installed it, set it as interpreter - works fine (win10, pycharm).
Some students got weird errors using linux - for me it's the same but meh Idc.
Today I tried using Jython on my notebook, too (win10, pycharm). Downloaded it from the Jython Project website. Can't update pip, can't run modules - error is about fckin charsets...
Some other student figured out - wrong version of Jython. The newer version has some bug fixes.
2.7.1 is the one and only - the download section of their website offers 2.7.0 as latest release...
So - how to know there is a version 2.7.1?
#1 version control website = Wikipedia
So... there is a blog, guy's writing about this release - this installer is hosted at maven central. Yeay. Obvious. Thanks.
Can't describe such stupidity - maybe it's the user again 😂 -
Sooo... I have an Haskell exam tomorrow and I thought I had the evening to review some stuff and try to code a little bit more. Guess I was wrong since I had to take my sister to her soccer practice at 7 pm and am arriving just now home.
Well, I guess if I fail, I'll just blame it on her.
That's what siblings are for, right?5 -
To be honest with you, I’ve never had a bad experience with PHP.
Yes, it’s “dirty” compared to something like Haskell, but it’s not a bad thing. Dirty things usually bring simplicity and allow implementing the intended case super quickly, at the cost of breaking apart at scale. There are no bad tools, there are wrong tools for the job.
Premature optimization is the root of all evil. The more I launch new projects for me/other companies, the more I come to the realization that the vast majority of the projects out there will never see scale. They will be proven non-viable/impractical and deemed obsolete way before they outgrow the $20 VPS they were hosted on.
Sometimes (all the time, really) launching quickly like there is no tomorrow is the most viable business strategy. If (yes, “if”, not “when”) your project outgrows PHP and gets to the point when PHPs abstraction model is the bottleneck, you’ll have the money to rewrite the project in any language out there, trust me.
As someone said on biking subreddit to a person that asked how to buy the newest super-aero helmet, “if the aerodynamics of the old helmet is what holds you back, someone will be sending you the new one for free”.6 -
Hey, dfox & trogus
How about some Haskell/Scala/F#/OCaml/Clojure/Scheme swag? For example, I'd love a Haskell-caped devDuck.
Show us functional programmers some love pls ;_;2 -
Ok, so I'm a student and in my free time, I mostly write a bit of python, C++ and a bit Haskell for fun...
I wanted to try out Android development now...
HOLY FUCKETY FUCK, THIS SHIT TAKES TIME!
most of the time, I get an idea, open vscode and start typing (maybe install some modules for like 10 minutes), not with this: Android studio took hours to download with all the needed SDKs and libraries, then I created a new empty(!) Activity, then fucking Gradle needs hours to get it fucking ready... On a fucking XPS 13 9370!
How do you guys cope with that waiting, does it scale that way to bigger projects?
I would call myself rather patient, but if I have an idea, I don't want to set up the most basic environment for 3 hours...
Man that shit is bulky...4 -
I prefer starting from theory and then proceed with practicing. For example, to learn haskell and deeply understand it, I started by taking a course in category theory and I already have a degree in computer science and then start writing actual code. The same with JS. I started with theory for JIT compilers and studied how V8 works, how it utilizes event loops and how they are implemented in the kernel. Then I started experimenting with code and demos. It's a success path for me, that has worked every time with every new technology.2
-
I feel really stressed about everything I want to learn. Everytime I hear someone talk about some new framework or I see people here discuss languages or stuff I don't know anything about, I want to learn it. Right now the list of things I feel I need to learn is so fucking big that I've no idea where to start. Also, I need to focus on my upcoming exams, so I've absolutely no time to learn or do anything. Backend, front-end, iOS, Android, desktop, OS development, everything. So much to learn, so little time.3
-
dev && !rant
I am thinking about picking up a functional language. Currently I use Kotlin (and I fucking love that language) but I have to admit that it's support for functional programming is limited.
But I think their lies a certain beauty in fp and I want to do some project with it.
The 2 main problems are:
1. I have no experience in functional programming. I have no clue how to structure my program (potantialy without oop) and write clean testable code.
2. I don't know what language to use. Scala seems great since it has good IDE support and I like the Java ecosystem and Haskell seems to have more beauty but is missing that IDE support and it is very unfamilar for me.
So what do you guys think I should pick up? And how do I learn to write good software with it?17 -
Webpack? More like Fudgepack 😡
OK sure, I know it's cool to rip on Webpack without taking 5 minutes to understand it, but I really have tried. Every time I want to do anything which used to be trivial with grunt, gulp or brunch, it requires a whole bunch of sorcery and every post I see online around the same topic inevitably ends with something like "that's not modular", "WebPack doesn't work like that", "you're holding your phone wrong" etc. And it's not like I'm someone who is afraid of new or uncomfortable things. I try new languages almost as often as there are new JavaScript fads (OK maybe not THAT often). I use "weird" keywords and experiment with different key maps all the time. I swap my daily window manager on an almost quarterly basis (and xmonad is no picnic as an introduction to Haskell). But what the fuck is it with so many people in positions of influence in the frontend world always taking one step forward, two steps back and an occasional hop sideways when it comes to tooling (and dragging everyone else along with them)?
How did such a turd of a tool become defacto for so many frontend frameworks? Do hard core JavaScripters just really really hate outsiders and want to deter others from their precious as much as possible? Fuck Webpack and fuck everyone responsible for helping it permeate so thoroughly through the software development industry.2 -
Haskell is so funny like if you ask a function for some pizza, you get a bunch of pizza boxes back, and then when you want to put topping on the pizza you're like "hey can i like actually have the pizza now?", and then you realise you can't actually change the pizza so you make copies of them with the topping on.1
-
Learning Haskell is pain
Haskell fucks with your mind and enjoys doing it
Every Haskell list comprehension is the most convoluted piece of shit I've ever seen, until I see the next list comprehension
The Haskell compiler errors are the worst I've ever seen, and I've worked with fucking c++
AND NOTHING MAKES SENSE! I FUCKING HATE HASKELL5 -
After the long haul of designing, structuring and finally implementing, my side project is done. The only challenge I faced was to not lose interest or get distracted :p
I made this to get a hang of haskell. It adds haskell functionality to your shell and lets you apply functions to outputs of other programs(ls,ps,df etc)
https://github.com/iostreamer-X/...
Your honest feedback is highly valued.
Thanks!
:D -
I thought nested list comprehensions in haskell were hard.
Until I tried to make a non fixed footer that stays on the bottom.2 -
!rant
Do you think it is worth learning functional programming and specifically haskell. It seems like a really good concept, but a lot of people claim that it's not applicable in real scenarios.12 -
After a bunch of errors compiling, fixing errors and learning Haskell on the go, I finally created a basic, lacking devRant API in Haskell.
Link: https://github.com/Supernerd11/...7 -
Why do you (if you do) prefer dynamic languages? I.E Python, Ruby, JS over Kotlin, Swift, and Haskell? (I know why people don't like Java, I purposefully omitted that).12
-
to be honest, i hate every OOP, in my opinion it's just add complexity in every way. yet i would like to use Functional Programming but it's fukking hard to learn and hard to get use to. Tryna get used to Haskell.4
-
I was writing in Haskell GHC - and after I got tired of fixing some tuple problem I had no idea about, I typed "fix bugs" and pressed enter....
-
Flame war:
Best functional language + eco system for web dev -
F#, Haskell, Scala, elixir, other?
Same for scientific/mathematical simulations?9 -
Haskell: Turning runtime bugs into compile-time errors.
Python: Turning compile-time errors into runtime bugs.3 -
I’m learning Haskell and my mind is blown by how elegant functional programming is, it might take a while for me to get accustomed to FP but I can’t wait to get there. Thinking of making the 2048 game in Haskell as a learning exercise3
-
FUCK. I'M DONE WITH THIS SHIT. CAN'T GET MY HEAD AROUND THIS.
My intelligence is limited to Java & Python.
NO VARIABLES, RETURN TYPES..NOTHING! JUST FUCKING MAGIC! AND ALSO, FUCK EMACS.undefined i should probably kill myself can't understand shit stupid me fucksell shit emacs fucking haskell and gofer2 -
I hate university projects, they are so dumb sometimes.
Now I am supposed to write a Haskell like functional programming language using C++ templates, and I have 10 days to do it...
I'm looking forward to a day when I could finally wave the middle finger to this institution.4 -
Lisp is such a cool language, and I feel like because functional programming is becoming so popular, Lisp could end up the go-to language because it's so versatile and, though there are many parens, it's friendlier at first glance than Haskell. (And there are so many libraries for it, omg)6
-
some languages completely get lost in minutiae, disposable preciousism that looks pretty but mischievously gobble development cycles. Now, there's no doubt they make for skinnier, trustworthy, low maintenance code, yes, congratulations Haskell. Although, you see, Haskell, not every language out here is defacto an academic one. You hear me, Rust. So, for fuck sakes, Rust dear. You've macros, sis, you don't need a new languages feature every other naughty day. You need prototyping speed, not more complexity. I'm not complaining not really.... It's your fucking language server, your compiler... They can't take this shit no more. Have you seen their overeating problems? Please, Rust, stop picking plastic surgery instead of make-up and use macros instead
--
and google, dear, your auto completion sucks ass1 -
When you hear “Haskell performance”, what comes to your mind? I was never really interested in Haskell since I had Clojure, and I thought Haskell might be slow.
Haskell with GHC is actually as fast as C or even faster. Haskell runs right on your hardware, no VM or interpreter.
When a program is small, the performance is comparable to C. Sometimes it’s quicker, sometimes not. But when a program is large, Haskell implementation would be faster if you’re not a robot that generates perfect C code.
It’s both very high-order AND very fast. You don’t need math to code in Haskell.
Too bad there are no kewl libraries.12 -
It's getting on my nerve to constantly change from one programming language to another in one semester. We are learning web development (html css js), functional programming (haskell), speech analysis (matlab) and logical programming (prolog). It's driving me kinda mad having to change the approach for each assignment every few days.2
-
I hate when people compare programming languages without understanding much, e.g. "Do they have semicolon or not?" "Lol there are lots of parentheses in Lisp". I even hear someone said "Haskell and PHP are alike because they both use the $ sign"
Come on, don't be that shallow, programming languages are much more then syntax and their logos. Learn more about their paradigms, ideologies, the reasons behind those designs. -
Love pattern matching, esp. in function clauses. No programming language can be considered feature rich without it. Yes, I'm looking at you, <mainstream programming language>1
-
Functional languages like Haskell, F# and so on have been designed by Satan himself to torture poor dev souls2
-
A medical equipment that you can attach to employees and excruciatingly kill them as soon as they say things like (please note that the list is not limited and we should use a speech to text API to provide NLP states for the meaning - I want to catch all false negatives!! Kill them all!!!!):
- It works on my machine
- I tested it before!
- Haskell is a terrible language
- Big data and actionable insights
- why do you need unit tests here?
- I am a recruiter
- Anything that comes with the following construction as well: "I don't have anything against X, but..."
Any other suggestions of phrases?2 -
Recently I've been getting sucked further and further into functional programming. Started with learning Java 8, and when toying with Streams I was looking into different features (dropWhile and takeWhile) which lead me to Java 9. Now I find myself fluent in Scala and learning Haskell. When does it end 😵5
-
A fully deployed end to end example of CQRS/Eventsourcing using Haskell.... I only get 1-2 hour chunks to work on it sometimes weeks apart! Even then I get bogged down trying to improve my workflow with tmux and other cool Linux tools. 😣
-
I want to use Emacs more and more for my development stuff. I feel fairly comfy while developing server side stuff (clojure, haskell, ...) but I can't find a good setup for the client side.
Has anyone here experience with Emacs and React? Is there a good setup where stuff like format document etc. works? Is it event worth using emacs for the frontend or should I just stick to vscode? -
asked the Graduate Teaching Assistant about the syntax for Haskell and why it was giving me weird errors. She replies by saying she's never taken this course before and is learning it along with us but she can help in the logic. -__- had to go ask the prof for help.1
-
data Word: A Word is an unsigned integral type, with the same size as Int.
And here I was thinking a word is a string! And that's not all, there is also Word8, Word16 and whatever else.3 -
After many false starts, I think I may finally be understanding Haskell to the point I could actually be productive in it. It's fun to be interested and motivated in a side project solely because of the language being used to write it!
-
I'm a web developer.
I build web apps using JS/TS, vue.js and some Go in the backend
But I'm not that kind of dev who knows how a compiler work, and I usually get lost when I read a comment written by that guy 100110111.
Weeks ago, I started looking for a new language to learn, I tried Rust, Nim, V, I spent 30 minutes on the haskell homepage doin' the "learn haskell in 5 minutes"
I really wanna learn a new language, because I love learning new things.
Even if many of you here did not agree that Vlang could become a great language, I liked it and I'm following it waiting for the v1.0 maybe it's gonna achieve all its promises.
There is some other languages that I wanna learn too, like Nim and Zig.
What makes me like a language ?
1- the simplicity of syntax
2- performance (benchmarks)
3- the possibility to build anything with it
Now I'm wondering if it's a good thing to swap between languages like this, without knowing exactly what I'm gonna do with it, and what should I do to stop hesitating and stick with one language
...
what I really want, is to learn a language so good that can be used on servers (web backend) and on desktop (cros platform)7 -
After some time experimenting with Haskell (with mixed impressions) and quite positive feeling about Scala, I am really shocked by Clojure. I tried simple example from youtube tutorial, but it looks so awful, complex and compared to Haskell and Scala version it is just so verbose. I read that Clojure is a concise language. Is the tutorial bad or is this a fine code in Clojure? I really don't like the code at all...5
-
I have grown used to hunting for ; issues. But when my haskell doesn't compile because my work partner used notepad and tabs instead of gedit and spaces... I suffer ;-;1
-
Sometimes I think that TypeScript is like a poor developer's Haskell. I thought "Isn't this supposed to support functional programming?" and searched for a way to do currying or partial application, and only found hackish solutions :/ Then again, maybe I don't know Haskell well enough to make a proper judgment.1
-
Okay. Here's the ONLY two scenarios where automated testing is justified:
- An outsourcing company who is given the task of bug elimination in legacy code with a really short timeframe. Then yes, writing tests is like waging war on bugs, securing more and more land inch after inch.
- A company located in an area where hiring ten junior developers is cheaper than hiring one principal developer. Then yes, the business advantage is very real.
That's it. That's the only two scenarios where automated testing is justified. Other such scenarios doesn't exist.
Why? Because any robust testing system (not just "adding some tests here and there") is a _declarative_ one. On top of already being declarative (opposed to the imperative environment where the actual code exists), if you go further and implement TDD, your tests suddenly begins to describe your domain area, turning into a declarative DSL.
Such transformations are inevitable. You can't catch bugs in the first place if your tests are ignorant of entities your code is working with.
That being said, any TDD-driven project consists of two things:
- Imperative code that implements business logic
- Declarative DSL made of automated tests that also describes the same business logic
Can't you see that this system is _wet_? The tests set alone in a TDD-driven project are enough to trivially derive the actual, complete code from it.
It's almost like it's easier to just write in a declarative language in the first place, in the same way tests are written in TDD project, and scrap the imperative part altogether.
In imperative languages, absence of errors can be mathematically guaranteed. In imperative languages, the best performance (e.g. the lowest algorithmic complexity) can also be mathematically guaranteed. There is a perfectly real point after which Haskell rips C apart in terms of performance, and that point happens earlier on than you think.
If you transitioned from a junior who doesn't get why tests are needed to a competent engineer who sees value in TDD, that's amazing. But like with any professional development, it's better to remember that it's always possible to go further. After the two milestones I described, the third exists — the complete shift into the declarative world.
For a human brain, it's natural to blindly and aggressively reject whatever information leads to the need of exiting the comfort zone. Hence the usual shitstorm that happens every time I say something about automated testing. I understand you, and more than that, I forgive you.
The only advice I would allow myself to give you is just for fun, on a weekend, open a tutorial to a language you never tried before, and spend 20 minutes messing around with it. Maybe you'll laugh at me, but that's the exact way I got from earning $200 to earning $3500 back when I was hired as a CTO for the first time.
Good luck!6 -
Can't decide which language to pick up as a hobby. Common Lisp or Haskell? There's also Elixir. Tough choice.6
-
While I writing PHP I have to think of Haskell all the time, how nice everything would be with Haskell and I dream of the time when I can be with Haskell again. <3
-
Does anyone know where B, D language, Haskell, Scala, COBOL, Fortran and other unfamous languages are used? I know that Scala and Haskell are functional programming language but I don't know where it is useful and COBOL was used in US army but I never hear about them.3
-
How to keep an imperative programmer busy for hours?
tell them the syntax for swapping two variables in Haskell is:
let a=b; b=a in <exp>3 -
I'm writing a minor productivity app which consumes and modifies a vbscript file on a network drive which apparently gets included in other productivity tools to drive the business, as well as updates the relevant DNS entry the field is associated with, and because I care about making the world a better place now writes the data out to what I hope becomes the authoritative source for said data which eventually replaces these who-the-knows-why-they-are-there network drive files and snippets.
The tool removes the need for an ISP tech in the field to make TWO phone calls when they update network equipment. One for the vbscript tweak, one for the DNS update.
Oh, did I mention that some PHP app under a L1 helpdesk guy's desk that the company has made absolutely necessary for their business (and I subsequently moved to a god damn server) consumes the vbscript file and parses it into something PHP can understand?
You can't make this shit up.
The only saving grace is that I have my team rewriting all of this ridiculous shit in Haskell. Type safety and long term refatorability will keep us sane. -
I wanted to get into programming since secondary school (at around age 14), and I started out with some very basic gamemaker stuff. Later I also started doing some C#, but I didn't have the patience or skill to create anything actually cool or useful. Then at age 18 I went to uni to pursue a cs degree, and that's when I actually properly learned how to program in C#, with a bit of Haskell, Python and C++. A little more than a year after that I got a job as a Java developer (with many many thanks to a friend of mine, @chappio). I already knew how to program but there I learned a lot more about good practices, quality control, testing and so on. Fast forward to now, 2 years later, and I'm almost done with my bachelor's degree (just a few more months) and I still work at the same company with much joy. Pursuing my dreams has worked out pretty well so far, let's hope it stays that way :)
-
So this situation happened a while ago, but I am still pretty angry about it. I am learning Haskell, and it wasn't working, so I asked someone for help. Turns out, he had only been learning how to program for a couple weeks now, and as soon as he saw it, he burst out laughing.
He was making fun of me in the sense that I had only written one line (What?!) OKAY, first off, does this kid know what Haskell can do in one line? Much more than his beloved python, in which, the most complex thing this moron has made was a for loop. And second off, this kid is just like those retarded coworkers and bosses that measure productivity by lines.
I'm not gonna hate the kid because he's learning, but I can see he superiority growing a couple weeks in
God forbid he EVER takes this as a career option, else he may be the most arrogant, annoying human being alive. -
Fuck VS! C# sucks! F# sucks!
I found no way to debug C # and F # without VS(At least the official did not give a plan)! And I can only use macOS now.
After downloading VS for mac, I found that it installed mono automatically! And there is not even a button to open the folder!
Why do you have to wrap a class outside the main function? And their pointers are not flexible at all! Also, unlike C, Go, and Rust, the compiled files are binary files. WTF does DotNet give me? debug directories and .dll files!
I originally planned to learn DotNet core for the convenience of using Azure.
But I found that, through Python, JavaScript, Ruby, C(LLVM-Clang), Go, C ++, Rust, Haskell, Azure can also be used, which gives me more sufficient reasons to give up C #, F #!14 -
When will there be Haskell, Erlang or APL shirts?
I wanna have one with a cool language as my profile pic1 -
I know this is a recurring question. What language to learn in 2018?
Kotlin, scala, elixir, rust, go, ...?
I need something practical and preferably a language that at least partially supports functional programming patterns. Oh and also I don't want to learn Haskell. Thanks.4 -
Total personal rebranding, mark zuck T-shirts, total CV changeover (change the weird perl & haskell skills, to javascript) you know cool kid stuff.
wish you all luck, am about to become rich, watch out.6 -
Creating a language that takes the immediate feedback and clean design from Eve language and an functional paradigm like Haskell or Purescript1
-
Haskell's foldl1 is do satisfying: "Folding" multidimensional arrays using a predicate feels like cheating. I feel dirty and clean everytime I use it...
-
Goals, eh? Lemme see...
- Graduate so I can get that raise I was promised.
- Finally get started on some side projects and/or have the time to contribute to some projects, OSS or not.
- Learn Haskell and Kotlin properly
- General improvement (learn, learn and learn)10 -
Haskell would say from its heart:
People who don’t talk about me, don’t know me.
People who talk a lot about me a lot, don’t know me as well.1 -
I want to learn a functional programming language, hoping to start off with HASKELL. any suggestions?5
-
I want to learn Clojure or Haskell but why i'm feeling like i'm going to do a life or death choice?2
-
I need help in this?
Create a function name divisers/Divisers that makes an inter n>1 and returns an array with all of the interger’s divisors(except for 1 and the number itself), from smallest to largest. If the number is prime return the string ‘(interger) is prime’ (null in C#)(use Either string a in Haskell and Result<Vec<u32>, String> in Rust)5 -
Why do Haskell/Scala/Lisp/Clojure develops do crossfit?
Because they like their fitness how they like their programming paradigms: functional!