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

To be honest, I'm extremely disappointed in these guidelines, given that this is coming from YC. Why? They divert focus away from doing whatever it takes to make something incredible for users: underserved students in a failing system that's becoming exponentially costly and disconnected from our modern society. Even if that means challenging convention and breaking some rules. Think of where Airbnb, Uber and Bitcoin would be if they had stuck to standards, to name a few big examples. This post goes completely against the "naughtiness" YC (PG) has always looked for in founders. For some reason edtech to date has been an exception to this rule.

Disclaimer: I just submitted a YC W2017 nonprofit application as the solo-founder of Bloom, a new education system powered by software. I'm not sure if this comment will help or hurt me if I get responses, but I think something needs to be said. I put my app up on Dropbox for you to check out if interested. Still searching for a great cofounder. If this is an issue you really care about, feel free to DM me on Twitter. I'll fly out anywhere. Bloom YC W2017 application: https://www.dropbox.com/s/1szvs6o4qs15djj/KD%20%26%20Bloom%2...

The cost efficiencies of conventional public and private education today are abysmal. Teachers don't scale. Campuses don't either and are physically isolating. And Common Core, courses, grades, tests, and degrees are arbitrary practices that could by replaced by something completely different, something designed for the digital age. Something not only better than public schools, the most prestigious private prep schools and the Harvards and Stanfords, but something that could scale to everyone in the best and worst of areas of the world. Education is a lifelong right that everyone clearly needs and deserves as technology continues to advance exponentially.

Yet for some reason, edtech hasn't been able to look beyond the current state of things and build something completely new. There isn't an "Uber" or "Bitcoin" of edtech. And I believe the reason why is solely because of posts like this: advice that places too much importance on working with inefficient systems, industry best practices, laws and trying to fix a broken system instead of ignoring all of that unimportant stuff to just focus on users and build a new one from scratch through software. As a result, current edtech solutions are fragmented, inflexible, slow, general and boring, just like physical schools.

So what will education look like in the future? In my opinion, it will be a cohesive system that’s modular, peer-to-peer and mobile. That’s the only way an edtech platform can both scale to ->7.5 billion users and support arbitrary specializations adaptable to the future.

I think a good parallel to the approach I'm talking about is what Urbit has been trying to do to re-decentralize the Internet. Instead of trying to solve each problem one at a time, they've built a cohesive system from scratch on top of the old, broken Internet, which solves all of its problems in one go. This is the approach I think edtech needs to take, and ignore everything else.

Yes, clear product vision and implementation ease are important for edtech startups. But you could say the same about Uber and Airbnb. Yes, viral current content is important. But you could say the same about Netflix and Twitch. Yes, flexible, optimized pricing is important. But that can be solved in other creative ways. Yes, exceptional customer support, respect for privacy and organization transparency are vital, but that's expected of any great YC startup.

I'm just shocked software hasn't eaten the education system yet, because ultimately the quality of kids' entire lives are on the line. I would know.


> Yet for some reason, edtech hasn't been able to look beyond the current state of things and build something completely new. There isn't an "Uber" or "Bitcoin" of edtech. And I believe the reason why is solely because of posts like this: advice that places too much importance on working with inefficient systems, industry best practices, laws and trying to fix a broken system instead of ignoring all of that unimportant stuff and just focusing on users to build a new one from scratch through software.

The number one obstacle quite frankly is law and accreditation. They force the certain basic foundation that hinders a revolutionary startup from inventing a different modality.


But that's my point. Uber and Airbnb and Bitcoin didn't confine themselves to laws in the beginning. They just built something that worked. Yes, now that they are big they are hitting legal obstacles (like NYC's ruling on Airbnb rentals today, a top HN post). But they are also now known, and so users are aware of the potential innovation that the current state of law is inhibiting. And that increased demand for these kinds of inevitable new products and services will lead to faster change over time.


Uber and Airbnb don't have the government as a customer. You can't both ignore the government and sell it stuff at the same time.


The model I've come up with leapfrogs government entirely and goes straight to users.


Keaton, you make it incredibly clear that you have no understanding about how education works. It's really sad that you criticize YC and our excellent educator community. Your neglect and lack of respect for teachers and traditional schooling is appalling and disturbing.

The saddest part is that a large number of young techies (you are 19) feel like you. Nevertheless, I want to empathize with you, and suggest that you step away from your computer and spend just any small amount of time within our public education system to see the challenges and complexities of serving our students. It is a complex problem and you are grossly understating and trivializing the importance and purpose of existing institutions. The founders of Uber and Bitcoin and Airbnb got nothing on education. Serve even 10 underserved students and drive them to prolonged success, and then come back and talk.

I don't take offense as much as someone running an edtech company, as much as I take for being a part of an outstanding community of people improving education.


But the mean in education isn't all that great, is it? There's issues that stem from assumptions about education that were correct in the 14th century but have since become a bit dated. You can improve a system built on the wrong premises, but you can't fix it.

It's a system that works through sheer force of will, and squanders the efforts of educators and students alike. The ambition of education technology shouldn't be to rehabilitate 10 underserved students, no matter how noble of a goal that is. It should be to make sure they aren't ever underserved. The current system can't do that period.

By the time you have fixed the issues that prevent it from doing that, you've ripped out and replaced 90% of it. The way class progression works. Automating lecture components. The testing components. How responsibility over students is handed from teacher to teacher. Assuring best practices are used, both by students and teachers. The curricula and how they feed into each other. Tracking student progress. Negotiation of homework quantity between teachers. Enabling broad collaboration between teachers in matters of teaching materials. Quality assurance.

The rage is not against the fact that there is an education system. It's that it could be so much better. It's against the waste of youth. A class of 30 with only half of it engaged wastes 180 childyears over their K-12s. That's 2 long lifetimes, in the years when their minds are the most malleable.


I've been incredibly inspired by YC and only mean for my criticism to be constructive. But by naming their edtech initiative "Imagine K12", they've already lost.

I care as much about solving education as they do. I think the basis of my argument is factually correct. Just look at the data.

Why not treat education like any other disruptable industry?


Thinking about similar things, wanna chat?


Sounds good. Shoot me an email at keaton@bloomv1.org. Other social media info is in my HN profile page.


Most educational systems are rooted in child-care, not in actually educating students. And the ones that do have the resources to properly educate students are often so entrenched in politics and status that they become better conduits for indoctrination instead of empowering students to better make decisions themselves. Like any old organization problems, it is going to be incredibly difficult for them to shed that history.


I quickly skimmed your site. I think the assignment on counting a room full of cash was brilliant. That should instantly get students attention in general and to how they might count their future stash. I'm interested in hearing how well that assignment did in both learning and creative solutions from students.


You may be right. But if I'm right, I'll help more kids faster. And that's what I care about. And I think I am right, because I see what I'm talking about every day.

With the exception of a few incredible teachers and mentors out there (I myself had several), education today isn't genuinely exciting for most students. Many teachers are truly great people and are valuable to students. But are they a necessity, or a luxury? Either way, in order for educational content to stay current in today's system, teachers need to be taught new information first before they can then teach their students. Physical teacher-to-student teaching is an O(n^k+1) solution that will never be in every city let alone the developing world. If -- and that's a big "if" -- learning could come from a single software-based source of information in a way that was just as good or better than physical teaching today, a world-class education and credit for it could be accessible everywhere. All a student would need is a smartphone, which is relatively nothing compared to the current cost of education. Look at Duolingo as a great example of this for language learning and language-fluency credentialing. And on top of that, is the role of the teacher to in fact teach, or to guide and mentor? Great mentorship is invaluble, but that can also come from anybody great even if they're not in a formal teaching role.

Most learning today, whether technology, science or art, happens through books and YouTube videos and students teaching each other anyways. This peer-to-peer model works. And because through this model, young, radiant students are the primary source of content delivery, this model is also addictively social and exciting. All you have to do is remove the system and let kids do their thing. There's a reason products like Reddit are so popular -- it's an Internet ecosystem for youth all over the world.

Almost everyone who's been largely successful in any field has been self-taught. This isn't a coincidence. Those who truly love what they do enough to commit themselves to becoming world class by definition transcend the limits imposed by conventional educational standards. The problem, then, is not a teaching problem, but an exposure problem and an excitement problem to help kids find their passions and solve problems with friends in person who they love. Could an edtech platform be as viral as a Snapchat, Twitter, Netflix, Twitch Reddit, Buzzfeed? That's what I'm set to find out.

Edit: For context:

Harkness table https://en.wikipedia.org/wiki/Harkness_table

Sugata Mitra: Kids can teach themselves https://www.ted.com/talks/sugata_mitra_shows_how_kids_teach_...

The best prep school in the world Phillips Exeter Academy, where I went, ironically is designed around kids teaching themselves. And parents pay $40,000+ per year for it.


You make some good points and I appreciate the links. The one thing you're leaving off that public and private schools teach are the lessons learned from face-to-face social interactions with peers, bullies, and authority figures. Public schools largely held be back as a savant where I had to learn most shit on my own. Some teachers were great enough to try to help me on the side. Nonetheless, the basic principles on human behavior I've encountered in various workplaces were the same as I dealt with in public schooling. Other people good at balancing various tradeoffs in the schools did well in the workplaces I've been in. Among the worst were the homeschoolers with one or two exceptions. Especially when they were trying to change things with resisting authority figures before getting slapped in the face with constant expectation to do what you're told. If anything, those of us from public school experience more freedom going into average workplace than we had then.

So, if kids left the normal educational system for your app, how would you replicate that experience gained in soft skills when most of their learning is just watching videos or messaging/talking to people through a phone? Or are you going to push it off to parents hoping they just all change in terms of how they facilitate training in social interaction? Remember that many students being held back by poor education are in the hood, rural areas, homes with apathetic parents, etc. The schools might be the closest thing they get to learning from some decent or just diverse people. Plus, there's the side benefit that they're like a day care allowing parents to go to work or have a mental break at least until summer. ;)


>>> Nonetheless, the basic principles on human behavior I've encountered in various workplaces were the same as I dealt with in public schooling. Other people good at balancing various tradeoffs in the schools did well in the workplaces I've been in. Among the worst were the homeschoolers with one or two exceptions. Especially when they were trying to change things with resisting authority figures before getting slapped in the face with constant expectation to do what you're told. If anything, those of us from public school experience more freedom going into average workplace than we had then.

I get what you're saying here, but if the chief virtue of the educational system is that it beats people into submission ready to face life in authoritarian (or micromanagement-disguised-as-teamwork) workplaces, I'm not entirely convinced that it's something worth protecting.

I'd be more interested in thinking about what a workplace should be like to get the best out of people who haven't been taught the kind of deference that seems to be expected.


"I get what you're saying here, but if the chief virtue of the educational system is that it beats people into submission ready to face life in authoritarian (or micromanagement-disguised-as-teamwork) workplaces, I'm not entirely convinced that it's something worth protecting."

I'm against the public school system. So, we agree with each other. Yet, I'm for putting them in situations where some aspect of what they have to do is dictated so they learn respond to that properly. Some of them will allow a clever response to succeed while others will not. Just like in real world.

They need to expect and be ready for this as the authoritarianism is dominant in workplace and government.


If you look over my application linked in the OC, you'll see our number one design goal is to connect users physically. There's something incredibly powerful about the social experience that school provides like you're describing that no big edtech platform today has made an explicit design goal. In short, we'll have to "design for trust" a lot like Airbnb did (see Joe Gebbia's TED talk). The locations could be anywhere from a local Starbucks to a public library to the nearest college campus. If educational content could be optimized for the smartphone, a lot like Snapchat has optimized the Snapchat story as their primary unit of content on mobile, then any place could become a sort of classroom. So long as you're surrounded by kids like you learning and making things with you that you care about. Meetup.com has accomplished this to some extent for working professionals, but we don't think it's specific enough towards specific projects in the context of youth education.

This is going to be a really hard problem to solve overall from a design perspective. And like you hinted, it will be even harder for us to do this for kids in poor or rural areas in contrast to rich kids in urban areas. But we're going to figure it out somehow. If the timing is right, self-driving cars and improved cheap public transportation will help this tremendously. Our app could then in theory automate the entire process of getting a group of kids connected somewhere safe and public. The value and safety of those kinds of experiences could be built upon even further if you add in a kind of crowdsourced mentorship experience on top of that, like Uber for chaperones in a way. If you're a local software engineer or cinematographer or biophysics researcher, you could give back to your local community by helping out local kids who want to contribute in your field. Now all the sudden everybody can become a teacher, which feels really good. Like Quora answers, but in person.


Your application is very interesting but it looks like you're trying to do too much at once. Especially with the AI part haha. I think a subset of it is achievable by one, focused person for a limited set of students and topics. As another said, the crap people deal with today is mandated by law and policy under a regime that won't buy into what you're proposing. Further, many places require by law that the kids are in what educational system considers a school rather than your app. So, you might want to prove the idea by hitting the market for workforce training and personal improvement then pivot into general education as both will use similar resources.

Another problem with your proposal, a huge one, is that there's nothing in it about countering spread of misinformation. Quick link to give an idea of how easy invalid information spreads and persists across social media:

http://www.iflscience.com/technology/facebook-echo-chambers-...

That or another Facebook study also pointed out that retractions (eg a Snopes article) only slowed misinformation in the 30-40% range IIRC. The bad info spreads more and lasts longer in your model. It has to be detected somehow with official counters on any topics where there's a consensus that they need to know. That means your model, like the others, needs human beings that act as sort of teachers and moderators. This is even true for a high-quality forum of smart people like Hacker News. Alternative is some AI that knows everything about how people speak, these topics, how to explain them... artificial teachers of nearly human intelligence that nobody has built yet. Since you lack that and need humans, your model can't scale for general population at the rate of technology scaling. Instead, it's something like N teachers per M groups where the N to M ratio is however much stuff the teachers can follow and moderate. You then modify this somehow with the fact that specific people or groups vetted by teachers as knowing the material can be rated among the N as their input is trustworthy. Might even compensate volunteers somehow a la StackOverflow or Quora if they contribute a certain amount.

Far as full experience regardless of bandwidth, do look up the concept of progressive enhancement as illustrated with this project:

https://gdstechnology.blog.gov.uk/2016/09/19/why-we-use-prog...

That thing even works on Lynx. Now, you want images, video, interactivity. The images can be compressed quite a bit while still being clear. Same with video. More compression for lower bandwidth links. Animated GIF's done well can illustrate in a few images what otherwise takes a video. Still popular on many sites. Use straight-up text where you can as my old text & RTF files were way smaller than Word or Web files. :) Support for distributed, file sharing within group if on Wifi. Alternatively, on SDcards where they could just buy one, have one person who affords Internet pull the data, and pass the shared card(s) along to group members.

I like how you mix it being a paid service with tax deductions and donations. I predict you'll probably put most or all of the services on the same infrastructure. What you can do is use the money that comes in for business or professional courses to cover creation of general ed material. The cash flow is split to cover each. The people making general ed material should have a track record of writing books or doing online courses that actually worked. They'll adapt it to your model. They'll have to change it for increased effectiveness as user feedback comes in like any other marketing. The cash flow also expands the distribution network so people with low income or poverty can access the material without overloading organization. A number of them might become contributors or paying users later.

So, those are some ideas I got as I read your application.


I think new education systems that are based on software will eventually replace most teacher-based education systems. Not only do teachers not scale, most of them don't understand the subjects they are teaching at a deep enough level to teach these subjects effectively.

I am convinced that software tutors that are based on AI research which was primarily done in the 1970s and 1980s will form the core of these new software education systems. For the past few years I have been working on an AI tutor for solving elementary algebra equations that can already teach parts of this subject better than a human can. If you are interested in discussing how AI tutors like this can be used to help realize the vision you have for Bloom, contact me using the email address that is in my profile.


Are you aware of any other edtech companies that have built solutions similar to what you're proposing? That's a good place to start.

BTW, these YC guidelines are built on actual experiences from 100+ companies. I wouldn't be so quick to dismiss their hard-earned wisdom.


Nope, which is why I applied.

And I agree in the sense that I believe in YC more than anybody. But I disagree in the sense that no edtech solution to date is dramatically changing the world as much as a Facebook or Uber, so something must not be working. And I'm calling out Coursera, Udacity, Udemy, EdX, Khan Academy, Codecademy, Vidcode, Jumpcut, MakeSchool, AltSchool, HackClub, codings bootcamps and regular school itself. Honestly, the best solutions right now are in fact YouTube, Reddit and Hacker News.


YC won't do your homework for you. There's great resources out there tho - start by spending a few hours on EdSurge. I literally started the company to inform folks like you entering the space to learn what's going on, who's doing what, and how ed is different from other industries being impacted by tech. It's the best resource out there.

The main takeaway I have after seeing so many enter this space in the past 7+ years is that the incurious never get very far. Be curious and seek to understand the paths of others before you, and you may find your place in it all.


With all due respect, it's a total fallacy that edtech has to be different from other industries. There's no physical force in the universe forcing education to be any certain way. So if one way is provably better, we should just build it, and deal with the obstacles when they come up later. Kids, both privileged and not, have been dropping out for years because they're tired of things. I'm building this for them.

To quote Balaji Srinivasan of 21 & A16z:

"Don't argue about regulation. Build Uber. Don't argue about monetary policy. Build Bitcoin. Don't argue about it. Build the alternative."


Re:industries, you don't think that the fact that education is about humans, rather than say.. power grids, or financial instruments, or mines, or laundry detergents.. makes it at least somewhat different from other industries? Or that those being served (children) are often not in a position to be the sole determinants of what's best for them, and thus your buyers may not be your users (and all that entails)?

Re:physical forces, there's actually several that have defined why education is a certain way today, and that will shape it in the future. Probably the most powerful is that it's first and foremost about human relationships - foundations of values, trust, physical presence, belonging, etc. And the second most powerful is that poverty is a physical context that shapes outcomes in the most profound of ways. I only bring these up because a) they're taken for granted by many tech entrepreneurs who did not have to worry about them in their own lives, and b) they're the reality tech entrepreneurs grapple with when they focus on the core of education problems, rather than the periphery where most wind up.

You sound pretty dead set in thinking you've got this though, so I wish you the best of luck.


Great point! The wellbeing of millions of students, and the complex web of relationships a school creates in a community, deserves a well regulated industry.


Silkworm son: "What's for breakfast?"

Silkworm dad: "NANOTUBES."


For some reason, attempts at humour here on HN never leave readers indifferent. I should say thank you, I was very tempted by a 'reel of transistors' version.


I'm not really addressing this to you, I just have a lot of thoughts on this.

I feel bad about the downvotes in individual cases, but the culture of easy, repetitive, or just plain bad jokes is a big part of what turned Slashdot from my favorite site into a cesspit that wasn't worth visiting, so I think they're a necessary mechanism.

The trick for this site is to make a good joke. If the topic is well-worn, it has to be a great joke. If you're not sure if it's a good joke, it probably isn't. I base this on the fact that most people simply aren't funny. There's no shame in that, it's just true.

I'm assuming the OP joke is a reference of some sort since I don't get it. A good rule of thumb is that references aren't jokes at all, they're references, so posting them here will probably get you a downvote. This is also true of puns and memes, both from broader culture and more traditional nerd quarters.

And just to be clear, I didn't downvote the OP, but I would have if it weren't already grey by the time I saw it.


Of course I understand all the good reasons you are giving, but I'd think you are taking it all too seriously.

People sometimes post bad jokes on HN for the same reason they tell them in face -- feeling lonely, sometimes desperately lonely, maybe even feeling rejected, trying to be part of it, knowing the joke is not so great but trying anyway.

And you know, if I can somehow help those people, even at risk of being biased in the wrong direction, I couldn't care less if HN becomes Shashdot. Every forum lives its life and then dies, and we all move on.

But that's me, others are entitled to other opinions.


> I feel bad about the downvotes in individual cases, but the culture of easy, repetitive, or just plain bad jokes is a big part of what turned Slashdot from my favorite site into a cesspit that wasn't worth visiting, so I think they're a necessary mechanism.

I think it was around 2000 or so that I set my Slashdot reading preferences to automod Funny posts -1. That turns +5, Funny "insensitive clod" jokes into +4s, allowing the +5 Everything-besides-Funny posts to bubble up to the top. It's features like that that make the original Slashdot discussion system still the best ever invented (well, back when the meta-moderation worked like it originally did, where you randomly approve or reject moderations, rather than re-moderating comments out-of-context, which isn't meta-moderation at all).


Hey Sam. I'm considering applying with my nonprofit edtech startup (a new crowdsourced education system that's peer-to-peer and mobile -- built around software, like Watsi). I'm a solo-founder still currently building the MVP.

Quick question 1: Is there a "Delaware C Corp" equivalent for the incorporation process/legal structures of nonprofits by state, or does it not matter?

Real question: Is there something to be said about founders waiting until they have users and initial growth to then use the YC opportunity to transition towards growing their company? In other words, if a startup is only getting one shot to go through YC, generally is finding initial product-market fit harder, or is growing the company?

Granted, the latter can't happen without the former happening first. But it would seem that for some founders that have genuine insights into real big problems, it would suck to waste the opportuniy of YC just "checking the boxes" of building their MVP, which they could know how to do already from PG's essays/YC's blog/Startup Class -- whereas they could be getting genuine advice on problems unique to their specific domain problem if they just waited and applied later.


QQ1: It does not matter.

RQ: In general I think waiting is a mistake, except that you should wait long enough to have a good idea about what you're going to do.


For a 2005 article, this is totally awesome, as well as that Steve Yegge response. But in 2016, it's hard for me not to get excited about what's seeming like Clojure's upward trajectory into the mainstream and want to jump on board 100%. To paraphrase Rich Hickey, Lisp and immutable functional programming totally rock, and the JVM and Javascript just reach (ClojureScript). As our systems get bigger and more quality is demanded from our software, it'd be so cool if we could get behind this as a standard, in all the growing technology fields -- web and mobile (Om.next for React and React Native), big data, AI/machine learning, Dockerization/containerization and even decentralized stuff (Pelle Braendgaard's Cloth library for Ethereum is a start, and I was just talking with some awesome people in the Clojure Slack channel working on Boot tasks for IPFS, and soon the Golem Network project will be launched which will be super dope). Hell, even designers can start designing in Clojure now. It's just Simple, and as the community grows, rallying behind it is only going to get Easier. People were raving with React Native about how JavaScript developers could now all the sudden start coding mobile apps. How cool would it be if there was just one awesome language, the one true immutable functional Lisp, where everybody in tech could understand each other and collaborate? I genuinely think this is Lisp's revenge (shoutout David Nolen!).

It's been tough for me as a new developer to learn this stuff without nearly as many resources as there are in the Python and Ruby communities for beginners, but there's no question this is the (near-term) future. Plus, a lot of that stuff just complects everything anyways and doesn't have to apply anymore (read: mutable state, no Value on Values).

Let's keep it Lispy. ;)


...No. Clojure is lisp, but it's a weird little language, and most of us lispers schemers aren't really totally happy with it. We're used to more flexability, less functionalism, and less opinionation. Plus, Clojure's equality and conses don't work at all the way a lisper would expect, and the conses are way less useful.

There's a reason there will never be a universal language.


As a clojure fan, I agree about conses. It's rare to use something like that.

Personally I'm happy equality doesn't work like common lisp. See here for a post explaining equality in CL: http://eli.thegreenplace.net/2004/08/08/equality-in-lisp

It's old and I don't use common lisp, so please correct me or the post if needed.

I've tried to get into lisp numerous times. Clojure was the one that clicked for me. I can't say if that's because of clojure or because it was just the right time for me after N times trying to get lisp.

Every now and then I poke at a scheme or CL. Scheme seems do-able for me, particularly Chicken Scheme, but I everytime I try CL, I come across what seems like too many functions to do what it seems like one function should do. Whenever I see something like SETQ, etc., that's a big turn off for me.

On the other hand, I really dislike Clojure startup times. Doesn't matter for server/long running apps, but when you are debugging or iterating, it gets to be a pain. There are some mitigations with their own set of issues.

Pixie and Hy have been brought to my attention. Pixie seems more or less abandoned, but Hy looks interesting. I haven't been able to tell from the docs if it has clojure datastructures (which are the best part of clojure), but Pixie does. So maybe sometime I'll try to bring those over to Hy and see if they get accepted.


No, what I mean is that clojure's conses are fairly useless compared to the conses of CL and Scheme.

Also, all programming languages implicitly have most of those equality operators. But yeah, Scheme's equality is a bit cleaner.

Not a super fan of Clojure datastructures. If I want to modify my cdr, than let my modify my cdr.


How are conses in Clojure different from those in Scheme? Is it the implementation? Because the API seems the exact same to me.


Not a Clojure developer but, IIRC, Clojure doesn't have conses, but rather the function cons creates a seq. A Seq in Clojure is immutable and (usually) lazy, which is nothing like what CONS makes in lisp (a mutable pair that is the basis for building singly-linked lists).

Note that linked-lists are only a good data structure in fairly narrow contexts (e.g. shared structure, certain types of mutation you can do). Since Clojure is focused on limiting mutation, it makes sense for them to use Seqs instead of linked-lists.


Didn't racket also make the decision to make cons create immutable lists (and using mcons for mutable lists)?


But that's not what Clojure did. In clojure, cons cells aren't cons cells: they're a cell that can point to a sequence of some type, and contain a pointer to arbitrary data. They also do not make up lists, and have weird equality rules.

Racket's conses are merely immutable.


However, conses can be used for other types of structures as well.


Yes, CL has old and useless functions.

There is zero need to ever use SETQ for example. SETF is a pure superset of SETQ's functionality. For other examples, I don't know that I've seen a serious use of PROGV or PROG in this century either.

Most experienced lisp programmers never use EQ, since EQL is more well designed, and the overhead is either negligible or nonexistent. Yes it's annoying that EQUAL doesn't recurse into non-string vectors.

Useful equality in CL is roughly: EQL for comparing non-aggregate types and identity checking of aggregate types, EQUAL for comparing lists, and EQUALP for case-insensitive comparisons. Some people add in = for numeric comparisons, but that's a style question (seeing = means "these arguments are definitely going to be numbers" and not much else, as if you're doing an equality test between e.g. an integer and a float, then you're doing it wrong, and differing numeric types is the only time = is different from eql when all arguments are numbers).

Comparing non-primitives is typically done with domain-specific comparison functions, as there are many ways to decide if two arbitrary objects are "equal" (for the old-saw OO example of 2d geometric shapes, you might have shape-area-equal, shape-perimeter-equal ...).

Some things I like about CL:

I find its package and macro system combine to be an amazing sweet spot of simplicity and power for metaprogramming. Scheme's hygienic macro system is the stuff that earned several people their doctorates; CL's is explainable in under a minute, and 99% of hygiene problems are solved by the package system (IIRC Clojure inherits its macro system from CL, using namespaces to solve the "FLET" problem).

CLOS+MOP made me feel like perhaps OO wasn't the colossal mistake I'd always thought it was. It's not the only great OO system out there, but it is great and so much better than the various C++ derived systems that I was first exposed to that it will always have a special place in my heart.

The condition system is great. The only quick summary I can give is that you can have condition handlers run in the stack context in which the exception was thrown (which lets you do much more useful things than running in the context in which you establish the handler, which is how all other exception systems I've seen work).

Common Lisp has amazing development tools; in particular the combination of SBCL/SLIME puts nearly all other F/LOSS IDEs to shame[1]:

It's a high-level language, but you can view a function's disassembly, capture instruction-level profiling data, recompile a single function and rerun all of that without stopping your program. The overhead of edit/compile/debug is essentially zero.

All that being said, I do need to take a look at clojure again (I went through Fogus's "Joy of Clojure" book when it was new, but haven't touched the language since).

1: http://pryrepl.org/ is apparently an attempt to bring some of this to Ruby, but I have on many occasions seen Ruby programmers say that "If you're using a debugger you're doing it wrong" and Pry doesn't seem to have a lot of users.


SETQ has to exist, because it is the primitive SETF is based upon. EQ is tremendously useful for testing identity (which is kind of its job...), and conveys intent (although I mostly use Scheme, where eq? is a lot nicer). And Scheme's macros don't have to be super complicated. explicit rename, implicit rename, and syntactic closure macro systems are almost as simple as CL macros.


On the other functional JavaScript side of things, there are also Elm and Purescript. They are both pure functional, and both are ML-inspired (strongly typed, equational, ADTs with pattern matching, etc.). Elm is a fair bit easier to get started with, but has a substantially weaker type system and fewer useful functional features. Purescript is a fair bit more difficult to get started with, but has a substantially more powerful type system and lots of useful features like effect types.

Personally, I greatly prefer ML style languages to lisp style languages. I get fed up with all the parentheses in lisps.


BuckleScript is worth a look too:

http://bloomberg.github.io/bucklescript/

It's in the OCaml-to-JS family.


Relevant for both YC & Elon: Since it seems like every company trying to hyperscale is experiencing a desperate shortage of tech talent, how can we get more unexposed people excited about technology? If Elon didn't have an engineer parent, what could have been another avenue for him to have been exposed to technology, and how might we be able to target those entry points globally to train more great founders and engineers?


This is amazing. Instead of getting an apartment with my cofounder and office space for our engineers, I'm just going to have us get a fleet of these things. Would be so dope. Be anywhere -- SF, South Bay, Berkeley, LA, New York. Live the dream now.


Can imagine this will be impossible to force with the rise of decentralized exchanges for BTC and ETH like Bitsquare and EtherEx. But still...

"The bill would prohibit a person from engaging in the digital currency business without enrolling in the program and would prohibit the conduct of digital currency business through an unenrolled agent. The bill would require a person seeking enrollment to pay a nonrefundable fee of up to $5,000... The bill would also require the person to provide fingerprints and would authorize the commissioner to deliver the fingerprints to law enforcement agencies."

Fuck this.


Truly fuck this law. Not even sure how they are going to enforce this rubbish.


a law may be not completely enforceable in normal situation, yet it would still provide at least two things: 1. scaring away a bunch of would-be players and 2. once somebody got law enforcement attention even for non-related things the law may provide for additional charge and thus higher pressure and higher chances that something would finally stick.


The usual way, I imagine: by having more guns than you do.


Anyone working on any cool edtech-related ideas/side projects to create something cooler than the stuff the author is referring to?


No doubt. HN naturally selects for smart people and relevant stuff. And no ads!


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

Search: