Comments (4)
This seems like the right approach. I agree that there's no particular reason to assume previous experience with Python specifically, but aiming the tutorial explicitly with people than have some programming experience, but not with a functional language or with strong static typing, seems like the right approach.
- Those with no prior programming experience at all may require a lot more time on the basics than a generic Haskell resource like this can afford to spend.
- Requiring that the audience have experience with strong static type systems or functional programming, though, narrows the field too much, and would move too many of the big benefits of learning Haskell out of scope.
So I feel strongly that the current balance is the right one.
I'd also caution strongly against assuming someone isn't interested in learning Haskell just because of a previous programming language they have learned. People learn languages for a lot of reasons unrelated to whether they might be interested in Haskell. A resource like this should not adopt a condescending or dismissive tone toward anyone based on their background.
from haskell-docs.
I see your point, but I disagree.
The target audience isn't Python enthusiasts per se. Rather, it's the large body of people who know (at least) the basics of programming (have written and debugged a few of their own programs, know how to problem-solve) but haven't been exposed to expressive types, laziness and purity. It just happens that in the current times, the huge and increasing popularity of Python means that I can assume most people have had some exposure to it, especially relatively new programmers.
My hunch is that there are loads of people in that pool who would love Haskell but haven't been exposed to it. Or haven't ever run into a good quality, up-to-date, free, on-line and easy-to-consume guide. To me, that seems like really low-hanging fruit.
As an example that Pythonista can learn functional pure programming, consider Jax (https://jax.readthedocs.io/en/latest/notebooks/quickstart.html) which is a very popular deep learning framework. It is functional (scans, map, etc) and pure (manual threading of random seeds required). The fact that a tool like this is getting heavily adopted suggests to me that if they're exposed to these ideas, people used to a language like Python have no problem with them. I think one reason for this is that Python uses functional idioms quite a bit, from list comprehensions to lambdas, to iterators, as well as the functools and itertools packages.
All that said, I'm not hugely wedded to the idea of targeting Pythonistas specifically, and could remove the explicit references to Python if necessary. "Pythonista" is more like a shorthand for "a coder who hasn't been exposed to purity, static types, or functional style".
from haskell-docs.
I see, interesting. When I read
for newcomers who have programming experience in a language like Python.
I thought this tutorial is for dynamic typing folks, and for those who like easy and quick learning experiences - which haskell simply cannot offer. Would be great if the statement was more specific.
Also, my observation to this date is that most pythonistas simply learned it because it was accessible and easy to learn, or they like doing things without any restrictions. At least python programmers from my uni was like this, they usually prefer easy way out for programming. I found some Java folks are rather more interested in potential alternative options - sadly, these are usually bound by job requirements. Just a data point to ponder upon.
from haskell-docs.
Good point, I can update that remark to make it clearer, and/or mention Java in addition to / rather than Python. And thanks for your observation! I totally agree that most pythonistas learn it because it is accessible and easy to learn, and I see this as the best thing about Python, and the major reason for its success.
In fact, that is really the motivation for the Haskell Guide; if Haskell was 10 times more accessible and 10 times easier to learn, could we get an influx of smart people in the community that would enrich the ecosystem?
Also, I agree that Haskell is probably always going to be harder to learn than Python (there is no free lunch), but I'm optimistic that it doesn't have to be much harder. Or at least: I think it should be easy for a newcomer to get to the point where they think it is worth spending the effort, and this guide is designed to get people to that point more quickly.
from haskell-docs.
Related Issues (17)
- Add a comment system HOT 1
- Full case study, with good code examples HOT 2
- "Edit this page" link is broken HOT 2
- Show how to read Hackage type class summary
- Add a more principled editing process
- Set up CI for the Haskell project to compile
- Add `foldl` and `Writer` to Gotchas
- Discuss more packages
- Online code playground HOT 2
- Code checking and running HOT 2
- Make GHC version clear
- Social cards
- Add "How to build a project" HOT 5
- Include the website link inside the repo's about section
- feature request: release code under a software-friendly license HOT 2
- Broken link for performance guide HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from haskell-docs.