Hacker Newsnew | past | comments | ask | show | jobs | submit | fadelakin's commentslogin

SEEKING WORK - US / Remote

I'm a fullstack and Android developer with 3 years experience both in the industry and freelancing.

Skills:

- Node.js

- React.js

- Android

- Python

- Django

- Docker

- AWS

email: temidayoadelakin@gmail.com

linkedin: https://linkedin.com/in/tmidao


From what I read, I don't think OP knows. My dad came here on a J-1 visa as a student which meant my mum, my sisters and me came here on a J-2 visa since we were dependent on his visa status.

It took us 10 years of constant applying, thousands of dollars spent before we got our green cards. I still remember my interview because I got my green card in 2015 and it was the most invasive thing I've ever gone through. I still even remember all the interviews we had to do before we got our visas to come to America.

In my opinion, I don't think OP really knows how difficult it is to get to America in the first place as an immigrant. It's not as simple as the media makes it out to be.


Can someone explain to me the main differences between a language like Common Lisp and Haskell?

I'm planning on learning on a purely functional language this year and I've narrowed it down to Haskell and CL but I don't know which to pick. Haskell has sort of been winning due to my friends knowing it and using it.

If you have any resources as well, please let me know. I don't know if this is the right place to post this.


Common Lisp is not a purely functional language.

The most caracteristic feature of Lisp in general is that, its whole syntax is the literal representation of one of it's core datatypes, the linked list. This allows for creating idioms of arbitrary complexity and reusable abstractions with ease, one a tiny kernel.

Another wording of this is that the Lisp family of languages represent their programs as data that those programs directly manipulate, and thus, programs can manipulate themselves. This is homoiconicity.

For who likes laconicisms, Lisp is a pleasant way to write and execute a parse tree.

The advantage to this is that you can create syntactic abstractions that fit in nicely, that work on structured data instead of strings not parsed and verified yet (hey CPP!) and are reusable by other abstractions.

The disadvantage is that your set of abstractions can become very easily dialects, and the language ecosystem is prone to (and damned by) fragmentation (i.e. every Scheme has it's own module system, and then there's a late standard that nobody uses).

Another advantage of Lisp, though not unique to it neither theoretically nor practically, is the image, that is, the state of the interpreter. Your average Lisp process is code running on a Lisp VM, and the VM allows you to modify the running code. This allows you to pause the thread when an exception happens, modify the code, and play it again, and the program uses the new, modified version of the code. These are called restarts and supported at least in Steel Bank Common Lisp, and are well integrated into SLIME, the canonical Emacs mode for Common Lisp and other uncommon (!) lisps. This is so powerfull, I read that in one space mission, when they spotted a bug in the code of a research apparatus already in space, they connected to its image and hotpatched the code fixing the bug, saving NASA millions of dollars.


"its whole syntax is the literal representation of one of it's core datatypes, the linked list"

"Your average Lisp process is code running on a Lisp VM, and the VM allows you to modify the running code"

Thank you. As a non-Lisper, this is probably the clearest explanation of Lisp's qualities I've ever read.


> Your average Lisp process is code running on a Lisp VM, and the VM allows you to modify the running code.

Just for others reading this; this is correct, but note that it is typically not a bytecode based VM like the JVM, but rather running native code.


CL is not purely functional language.

CL is either multi-paradigm language or Lisp paradigm language. There is lisp style programming.

It has many functional primitives but typical CL programmer is not programming functionally. Other languages like Scheme or Clojure are more functionally 'oriented' Lisps.


Ah I see. I guess I got confused somewhere. Thanks for the clarification.


As others have mentioned, CL is not a pure functional language like Haskell.

However it is possible in CL to write parts of many programs in a functional style. Further, my functional collections library, FSet [0], greatly expands the amount of code that can be written this way, bringing CL much closer to being a functional language. One FSet user told me that it had changed the way he thinks about programming in CL -- which I think reflects an intellectual transition that is at least a good part of the transition one would hope to make by learning Haskell.

If you do go with CL, you might want to check it out. (It's in Quicklisp as "fset".)

[0] https://github.com/slburson/fset


Common Lisp is functional in the sense of being based on Lambda calculus, but with all sorts of imperative and OO things bolted on.

Haskell is functional in the sense most people think (maths 'n things, functions with no side effects), with a few 'outs' (monads or 'containers' for doing imperative-like things).

If you want a 'functional' language, choose Haskell. If you want a language you can bend to your will, where you'll be making your own abstractions, writing a DSL, etc..., choose Common Lisp. Actually Haskell isn't even bad for that, so if your friends are using Haskell, just try that.


One of the most important differences is the type system of Haskell vs. the dynamic typing of CL. This is not a trivial distinction and they are quite different ways to program.


You can write purely functional programs in CL, but it's not a purely functional language in the way haskell is, and I think most people don't use it that way.


As others said, code-as-data and macros are probably the big ones but there's also a difference in composability vs configuration as Chris Done explained very nicely: http://chrisdone.com/posts/haskell-lisp-philosophy-differenc...


To say it more correctly (hopefully): Haskell contains a purely functional sub-language. It also has impure parts (provided by monads). Just like most programming languages have pure and impure parts. The difference is that Haskell employs the type system to segregate the two parts.


> It also has impure parts (provided by monads).

Since we're going for precision, I note that monads have nothing to do with impurity (https://wiki.haskell.org/What_a_Monad_is_not#Monads_are_not_...). It just happens that IO, in which the impurity lives, is a monad. It is also a functor (in the category-theory, not Prolog or C++, sense), but that doesn't make functors impure, and it doesn't make monads impure (or impurity inherently monadic: https://wiki.haskell.org/What_a_Monad_is_not#Haskell_doesn.2...).


Alright, so let me phrase it this way then?:

> To say it more correctly (hopefully): Haskell contains a purely functional sub-language. It also has impure parts. Just like most programming languages have pure and impure parts. The difference is that Haskell employs the type system to segregate the two parts.

(Anyway I'd be interested in how to access IO without using the IO monad; is there a lower-level type to use instead?)


For anyone reading "functor" and moving on, this (http://www.catonmat.net/blog/on-functors/) is a great post discussing how the term is used in a variety of languages.


Go with your friends. That will make 100x the difference that any technical difference does. Same with any language really.


I deleted the comments but it doesn't mean I'm not going to fight. I'm just trying to be civilized. Exposing the company could make things more complicated and I don't really want that.


Good, happy to hear that. As someone who was also struggling with a depression, among all other methods I'd like to recommend you to try meditation, yoda and taichi.

Meditation has scientifically proven benefits for people affected with depression and anxiety. Please look into it!

http://www.scientificamerican.com/podcast/episode/meditation...


I hope you don't take this the wrong way but this sounds like a much better advice than the one you gave above. I would not have guessed that both comments came from the same person, until I checked the username.


Fisher - thank you for taking the high road, for being brave and starting a great dialogue on what I think is an important topic, and a heart-felt congrats on your upcoming two year anniversary of sobriety. Good on you.


I think you absolutely did the right thing by removing their name. I hope you see a positive end to this situation.


Ok. How do I go about deleting comments? It seems I've missed the time to delete the comments.

I do agree with everything you've said though. I now wish I didn't mention the company but I guess it's too late to change that.

EDIT: I emailed hn@ycombinator.com about deleting the comments. Hopefully that helps.

EDIT 2: seems like the comments are gone.


I should mention that I've managed to curb my addiction for the past year and a half now. Coming up to two years clean in December.


You can read the piece of writing I wrote here: https://medium.com/@tmidao/confession-55fa5d4a3c0b

I'm always happy to clarify on any part that wasn't clear or you need more information on.


Firstly, depression is a serious mental illness with well studied chemical and therapeutic interventions. See a psychiatrist straight away. A few pills may really help your cause.

Sign up for Medicaid (http://www.hfs.illinois.gov/medical/apply.html) and/or talk to the the Cook County Health System psychiatry department (http://www.cookcountyhhs.org/tag/psychiatry/)

I’ve read the Bible and Qur’an front to back 5 times each. They hold no meaning to me.

I've run into some hardline Christians and Mormons in the Chicago software scene and writing that could very well have made you stone cold dead to them. Is your old boss from Wheaton, Illinois or nearby? That seems to be their headquarters.


Actually I live in Indiana but very close to Chicago and commute to Chicago daily for work....well I did. My boss was from Indiana and I don't think he was either Christian or Mormon.

I see a psychiatrist and a therapist twice a week. Obviously they're are cutting into my runway but I figured it's worth it since I've been doing much better ever since I wrote the piece of writing.


Spending three hours a day on the South Shore Line would make anyone depressed!

I bet you can get a software internship gig near you. Contact professors doing computational work at Notre Dame (http://ibms.nd.edu/clusters/computational-biology-bioinforma...) they may have room in their budget. Though the pay will not be extravagant.

Indeed shows 300+ software gigs in South Bend: http://www.indeed.com/jobs?q=software&l=South+Bend%2C+IN

But DELETE THE FUCKING ARTICLE man. Obviously, it isn't helping your cause.

Also definitely sue your former employer: https://news.ycombinator.com/item?id=8597953


As pragmatic as your solution of deleting the article is, I don't think that should be the action Fisher has to take here, it simply doesn't seem fair. If an employer takes issue with an article like that, then that's your indicator that they aren't right for you to begin with. But I have no experience with any of this so I can't conclusively say much.


Thanks Krish. <3


I'm deleting the article tonight but I wanted to make sure people got the whole story and I didn't mention the company at all.

I'll definitely look into getting an internship gig and probably spend all of tonight and tomorrow applying for the software gigs that I think I'll be a good fit in. Still debating suing.


[1] I'm leaving highschool in june. I've heard it's much harder to make friends after high school.


Although the book's title alludes to self help on making friends, the main point IMO leans more toward treating others how you would like to be treated and trying to genuinely understand the other person's perspective.

The reason I'm offering this book in particular on HN is because PG had recommended reading an unrevised version if possible. I'm sure many others are just as excited as I was to get a copy.


Do you know what the revisions were?


I didn't know that was actually possible. I'm going to find out where to go on Monday after talking to my counselor. Just need time to think about things.


Would getting a transfer degree at a community college be better than getting an associates that ties in with the field I want to study? I intend on studying until I get my Masters but I don't know if I should go for an associates in something that relates closely to CS or get a transfer degree in science.


Do your research.

There is no such thing as a "transfer degree". You either transfer or you do not.

Get an associates, the paper looks good, it's an ego boost, and it will make your family proud of you. After you get your bachelor's, the associate's will not matter for anything.

A community college is a great way to get into a far better school than you could have anyway, I'm living proof. This is because your GPA resets when you start junior college, and a 3.0 GPA on a junior college will get you into a much better school than a 3.7 would have in high school.

Just get in there, and don't screw up your grades. If you are not going to get a high grade in the class, drop it and then re-take it. It's a weasel thing to do, but it's better than getting a shitty grade in your record.

It's no big deal the situation you are in. Just work at it intelligently. You will actually save a ton of money than if you had gone to a 4-year college for all 4 (or 5 or 6) years from the beginning.


> There is no such thing as a "transfer degree". You either transfer or you do not.

The name may be different at different places, but transfer-guaranteed programs do exist. For instance in California community colleges, the "Associate Degree for Transfer" [0], the University of California Transfer Admission Guarantee program [1], and California State University Transfer Admission Agreements and Transfer Admission Guarantees [2].

[0] http://adegreewithaguarantee.com/ [1] http://admission.universityofcalifornia.edu/counselors/files... [2] https://www.calstate.edu/transfer/apply/priority-agreements....


Ah good to know. I actually did the UC transfer thing, when I did it those guarantees for he UC system did not exist.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: