Ask HN: What's your innovative idea to change the world? - 123user
======
ac360
I think it's time people have their own databases, instead of the apps they
use.

I made Servant to give people their own databases in the cloud:
[https://www.servant.co](https://www.servant.co)

It hosts people-friendly data models I call the "JSON Archetypes":
[https://github.com/servant-app/json-archetypes](https://github.com/servant-
app/json-archetypes)

If this interests anyone, my contact info is all over the website. I'd love to
hear from you.

Austen

------
KittenLanguage
I am building a new programming language that I have named Kitten, with a new
paradigm I call modular. Modular programming will be as easy to learn as
procedural and as powerful as object oriented. I also plan to make the
language nearly as fast as C but with Python styled syntax and with a good set
of libraries and data structures. My language will not use manual pointers (no
memory leaks or access violations), but will also not have garbage collection
or reference counting, I have an idea to make things simpler, though it may
add a few restrictions to the language. It will also be easy to extend the
language from C, so any C library will be able to be used if a small wrapper
is built (though of course errors in that part of the code could introduce
memory leaks and access violations could occur). I have many more ideas I am
adding to the language, those are just a sample of what I have planned.

I have most of the language's details written up in pseudocode, hope to have a
working Hello World in a month, a working prototype to give to friends in half
a year, and a working prototype to post on Hacker News in a year, and a full
language within 2-3 years. My problem is I am doing this on my own (which I
don't want to change at this point) while working a full time job. I have
thought about doing a Kickstarter to raise funds (I would ask for at least
$100,000) but know the legal side of things means it would be unwise to do
that until I create a company, which then would cost about $400 a year. I also
don't want any kind of deals involving giving away pieces of the company, or
going into debt, so donations are probably the only way I'd go. Does anyone
think the Kickstarter would be worth it?

~~~
frowaway001

      You appear to be advocating a new:
      [ ] functional  [ ] imperative  [x] object-oriented  [x] procedural
      [ ] stack-based [ ] "multi-paradigm"  [ ] lazy  [x] eager
      [ ] statically-typed  [ ] dynamically-typed [ ] pure  [x] impure
      [ ] non-hygienic  [ ] visual  [x] beginner-friendly [x] "modular"
      [x] non-programmer-friendly [ ] completely incomprehensible
      programming language.
    
      Your language will not work.  Here is why it will not work.
    
      You appear to believe that:
      [x] Syntax is what makes programming difficult
      [x] Adding more "ideas" to a language makes it better
      [x] People choose between garbage collection/
          manual memory management/reference counting and other,
          very hard to implement and use approaches for fun
      [ ] Garbage collection is free   [x] Computers have infinite memory
      [ ] Nobody really needs:
        [x] concurrency  [ ] a REPL  [ ] debugger support  [ ] IDE support
        [ ] I/O  [ ] to interact with code not written in your language
      [ ] The entire world speaks 7-bit ASCII
      [ ] Scaling up to large software projects will be easy
      [x] Convincing programmers to adopt a new language will be easy
      [ ] Convincing programmers to adopt a language-specific IDE will be easy
      [ ] Programmers love writing lots of boilerplate
      [ ] Specifying behaviors as "undefined" means that programmers
          won't rely on them
      [x] "Spooky action at a distance" makes programming more fun
      [X] Programmers will pay money to use your language
      [X] Programmers aren't annoyed already from all the new free
          languages appearing twice a day
    
      Unfortunately, your language (has/lacks):
      [x] comprehensible syntax  [ ] semicolons [x] significant whitespace
      [ ] macros [ ] implicit type conversion  [ ] explicit casting
      [ ] type inference [ ] goto  [ ] exceptions  [ ] closures
      [ ] tail recursion  [ ] coroutines [ ] reflection  [x] subtyping
      [ ] multiple inheritance  [ ] operator overloading
      [ ] algebraic datatypes  [ ] recursive types  [ ] polymorphic types
      [ ] covariant array typing  [ ] monads  [x] dependent types
      [ ] infix operators  [ ] nested comments  [ ] multi-line strings
      [ ] regexes [ ] call-by-value  [ ] call-by-name  [ ] call-by-reference
      [ ] call-cc
    
      The following philosophical objections apply:
      [ ] Programmers should not need to understand category theory
          to write "Hello, World!"
      [ ] Programmers should not develop RSI from writing "Hello, World!"
      [ ] The most significant program written in your language is its 
          own compiler
      [ ] The most significant program written in your language isn't 
          even its own compiler
      [x] No language spec
      [ ] "The implementation is the spec"
          [ ] The implementation is closed-source  [ ] covered by patents
          [ ] not owned by you
      [ ] Your type system is unsound
      [ ] Your language cannot be unambiguously parsed
          [ ] a proof of same is attached
          [ ] invoking this proof crashes the compiler
      [x] The name of your language makes it impossible to find on Google
      [ ] Interpreted languages will never be as fast as C
      [ ] Compiled languages will never be "extensible"
      [x] Writing a compiler that understands English is AI-complete
      [x] Your language relies on an optimization which has never been
          shown possible
      [ ] There are less than 100 programmers on Earth smart enough to
          use your language
      [ ] ____________________________ takes exponential time
      [ ] The liveness property is known to be undecidable
    
      Your implementation has the following flaws:
      [x] The "market" for programming languages doesn't work this way
          (there is no market)
      [x] CPUs do not work that way
      [x] RAM does not work that way
      [x] VMs do not work that way
      [x] Compilers do not work that way
      [x] Compilers cannot work that way
      [ ] Shift-reduce conflicts in parsing seem to be resolved using rand()
      [ ] You require the compiler to be present at runtime
      [ ] You require the language runtime to be present at compile-time
      [ ] Your compiler errors are completely inscrutable
      [ ] Dangerous behavior is only a warning
      [ ] The compiler crashes if you look at it funny
      [ ] The VM crashes if you look at it funny
      [ ] You don't seem to understand basic optimization techniques
      [ ] You don't seem to understand basic systems programming
      [ ] You don't seem to understand pointers
      [ ] You don't seem to understand functions
    
      Additionally, your marketing has the following problems:
      [x] Unsupported claims of increased productivity
      [x] Unsupported claims of greater "ease of use"
      [ ] Obviously rigged benchmarks
         [ ] Graphics, simulation, or crypto benchmarks where your code just calls
           handwritten assembly through your FFI
         [ ] String-processing benchmarks where you just call PCRE
         [ ] Matrix-math benchmarks where you just call BLAS
      [x] Noone really believes that your language is faster than:
          [ ] assembly  [x] C  [ ] FORTRAN  [ ] Java  [ ] Ruby  [ ] Prolog
      [x] Rejection of orthodox programming-language theory without justification
      [x] Rejection of orthodox systems programming without justification
      [x] Rejection of orthodox algorithmic theory without justification
      [x] Rejection of basic computer science without justification
    
      Taking the wider ecosystem into account, I would like to note that:
      [ ] Your complex sample code would be one line in:  _______________________
      [ ] We already have an unsafe imperative language
      [x] We already have a safe imperative OO language
      [ ] We already have a safe statically-typed eager functional language
      [ ] You have reinvented Lisp but worse
      [ ] You have reinvented Javascript but worse
      [ ] You have reinvented Java but worse
      [ ] You have reinvented C++ but worse
      [ ] You have reinvented PHP but worse
      [ ] You have reinvented PHP better, but that's still no justification
      [ ] You have reinvented Brainfuck but non-ironically
      [x] The "I can do everything better than thousands of people with
          decades of experience"-one-man-projects usually go nowhere.
    
      In conclusion, this is what I think of you:
      [x] You have some interesting ideas, but this won't fly.
      [x] This is 95% wishful thinking.
      [x] Building a language is a great way to gain deeper technical understanding,
          but believing it's possible to earn money with it is ridiculous.
      [ ] This is a bad language, and you should feel bad for inventing it.
      [ ] Programming in this language is an adequate punishment for inventing it.

~~~
KittenLanguage
Yeah, it will work, and a checklist will not convince me otherwise. I also
don't believe I can make money off of it, I was looking for opinions on if a
Kickstarter would work to help me speed things up, but I never even considered
using it to earn money beyond that. Yes, these projects usually go nowhere,
but mine won't. I think a detailed conversation is much less condescending and
much more enlightening than a checklist that is wrong on several points, such
as that I am trying to make a language faster than C, and that I believe
people will pay me for it (at least beyond a query on if donations was a
potential idea). Also I intentionally left a lot vague as right now I am
seeking opinions and not ready to unveil all of my ideas, in another year
check back and by then I will have a much more detailed description.

~~~
smt88
Seriously. Check out Scala. You seem to agree that FP and OOP are not mutually
exclusive, and Scala has already unified them in a widely-praised language.
It's a complicated language and therefore may not be very productive, but it's
considered to be well-thought-out for the most part.

Also, the checklist was condescending, but the point that syntax is not what
makes programming slow/difficult is totally correct. The time lost in
learning/using a toy language is far greater than the time lost in using a
steaming pile of garbage like JavaScript. Actually programming isn't even the
biggest use of time as a software engineer -- learning code and dealing with
people are.

~~~
KittenLanguage
Thanks for your input. I disagree with a lot of Hacker News on syntax though.
Syntax can be learned and is not a hurdle for anyone who is seriously into
programming, but I believe it keeps people away from programming who would be
interested otherwise. I also think that readability is more important than
writeability since maintenance is so important with any big project, and
syntax is a piece of readability (though only a piece).

I agree other things beyond syntax are more important though, but I think I
have enough interesting pieces of ideas that I want to put them all together
and see what the big picture looks like. Perhaps it will stay a toy language,
or perhaps it will grow beyond it. Some of those ideas I haven't written down
here either. One in particular that gives it hope for evolving beyond a toy
language is a way to write small wrappers around C code to link it into Kitten
code, so with a small amount of effort all of the impressive Microsoft
libraries should be accessible for Windows computers at least.

I'll have to check out Scala, I don't know much about it. Also a couple
languages I am really interested in right now are Nim and Crystal, a lot of my
ideas share a lot with those two newer languages, a more static-y compile to C
language than most newer languages.

------
smt88
My friend came up with this: open contests to solve humanity's biggest
problems. Similar to SpaceX, but the results are copyleft/free/open-source,
and they could be purely software-based.

Examples would be cancer research[1], solar-powered vehicles, next-gen
batteries, carbon capture... pretty much any technology that would drastically
improve and prolong life on earth.

1\.
[http://www.ted.com/talks/jay_bradner_open_source_cancer_rese...](http://www.ted.com/talks/jay_bradner_open_source_cancer_research)

~~~
fractallyte
Open contests would be meaningless without vast financial backing to launch
those world-changing projects. And the contributing party would want some kind
of financial reward.

Never going to happen, for a truly innovative idea, because the risks are too
high.

The world needs a benevolent Bell Labs type of institution, with commercial
intelligence, that channels profits back into its growth (like Amazon). It
should employ tens of thousands of scientists - engaged in 'blue sky' research
- and aim to solve problems that are currently considered 'too big'. The usual
stuff, like climate change, clean energy production, and political reform
(backed by hard political science).

~~~
smt88
Think about NASA. They created dozens of technologies that were then released
to the public and have become multi-billion dollar industries, and many of
those were not expected to have commercial value.

Of course, that's with a massive budget. Examples of smaller budgets Linux,
the World Wide Web, and probably a thousand more obvious things that I'm not
thinking of.

It takes these things a long time to get off the ground, but there are tons of
companies that are making money off of community projects.

~~~
fractallyte
The bureaucracy at NASA is stifling. Slicing up a relatively small budget
(compared to spending on finance, defense, and everything _other_ than
science) means that the majority of dream research is simply not undertaken.

If the barriers to funding were (sensibly) removed, academia, and institutions
like NASA, would flourish - and we'd see huge leaps forward for humanity.

------
Rhapso
Domesticate Octopi

------
davyjones
Augmented reality contact lenses.

~~~
smt88
You mean Google Glass in contact lenses? It's going to happen. You can hold me
to that. I'd bet it'll take less than a decade, too.

------
dibillilia
Capable graphing calculators for less than 50 dollars.

~~~
pbhjpbhj
Cheap Android phone with an app? People were talking in another thread about
Android 2+ phones for something like $12 IIRC.

