TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Which people and groups are researching new approaches to programming?

263 pointsby maryrosecookover 9 years ago
Which people and groups are researching new approaches to programming?<p>I&#x27;m interested in groups who are thinking about the next thirty years, rather than the next five years.<p>Some projects I find interesting:<p>* Subtext by Jonathan Edwards: https:&#x2F;&#x2F;vimeo.com&#x2F;106073134<p>* Apparatus by Toby Schachman: http:&#x2F;&#x2F;aprt.us<p>* Bret Victor&#x27;s explorable explanation and introspectable programming demos: http:&#x2F;&#x2F;worrydream.com<p>* Eve by Kodowa: https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VZQoAKJPbh8<p>* Scratch by the MIT Media Lab: https:&#x2F;&#x2F;scratch.mit.edu<p>* Mathmatica by Wolfram Research: https:&#x2F;&#x2F;www.wolfram.com&#x2F;mathematica<p>Why am I interested? I&#x27;m working on Code Lauren, a game programming environment for beginners: http:&#x2F;&#x2F;codelauren.com I want to learn as much as possible about work done by others in the same area.

59 comments

GregBuchholzover 9 years ago
I think you&#x27;d probably be interested by the Viewpoint Research (and Alan Kay):<p><a href="http:&#x2F;&#x2F;vpri.org&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;vpri.org&#x2F;index.html</a><p>...and STEPS:<p><a href="http:&#x2F;&#x2F;www.vpri.org&#x2F;pdf&#x2F;tr2011004_steps11.pdf" rel="nofollow">http:&#x2F;&#x2F;www.vpri.org&#x2F;pdf&#x2F;tr2011004_steps11.pdf</a><p>&quot;We set a limit of 20,000 lines of code to express all of the “runnable meaning” of personal computing (“from the end‑user down to the metal”) where “runnable meaning” means that the system will run with just this code (but could have added optimizations to make it run faster). One measure will be what did get accomplished by the end of the project with the 20,000 lines budget. Another measure will be typical lines of code ratios compared to existing systems. We aim for large factors of 100, 1000, and more . How understandable is it? Are the designs and their code clear as well as small? Can the system be used as a live example of how to do this art? Is it clear enough to evoke other, better, approaches?&quot;
评论 #10927985 未加载
评论 #10927040 未加载
评论 #10928965 未加载
rwosyncover 9 years ago
Like most things, the kernel of tomorrow&#x27;s ideas is already here. On the scale of the next five years, these ideas will give rise to what the future of programming will look like:<p>* Refinement types<p>Liquid Haskell: <a href="https:&#x2F;&#x2F;ucsd-progsys.github.io&#x2F;liquidhaskell-tutorial&#x2F;02-logic.html#&#x2F;semantics" rel="nofollow">https:&#x2F;&#x2F;ucsd-progsys.github.io&#x2F;liquidhaskell-tutorial&#x2F;02-log...</a><p>* SMT Solver Language Integration<p>Cryptol: <a href="https:&#x2F;&#x2F;github.com&#x2F;GaloisInc&#x2F;cryptol" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;GaloisInc&#x2F;cryptol</a><p>* Session Types<p>Scribble: <a href="http:&#x2F;&#x2F;www.scribble.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.scribble.org&#x2F;</a><p>* Dependent Types<p>Agda: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Agda_(programming_language)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Agda_(programming_language)</a><p>Idris: <a href="http:&#x2F;&#x2F;www.idris-lang.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.idris-lang.org&#x2F;</a><p>* Effect typing<p>Koka: <a href="https:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;daan&#x2F;madoko&#x2F;doc&#x2F;koka-effects-2014.html" rel="nofollow">https:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;daan&#x2F;madoko&#x2F;d...</a><p>* Formal verification<p>Coq: <a href="https:&#x2F;&#x2F;www.cis.upenn.edu&#x2F;~bcpierce&#x2F;sf&#x2F;current&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;www.cis.upenn.edu&#x2F;~bcpierce&#x2F;sf&#x2F;current&#x2F;index.html</a><p>TLA+: <a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;lamport&#x2F;tla&#x2F;tla.html" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;lamport&#x2F;tla&#x2F;tl...</a><p>This is the general trend, generally making more composable abstractions and smarter compilers and languages that can reason about more of our programs for us.
dentradoover 9 years ago
Some more projects:<p>* Unsion by Paul Chiusano: <a href="http:&#x2F;&#x2F;unisonweb.org&#x2F;2015-05-07&#x2F;about.html" rel="nofollow">http:&#x2F;&#x2F;unisonweb.org&#x2F;2015-05-07&#x2F;about.html</a><p>* APX by Sean McDirmid: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=YLrdhFEAiqo" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=YLrdhFEAiqo</a><p>* Awelon by David Barbour: <a href="https:&#x2F;&#x2F;github.com&#x2F;dmbarbour&#x2F;awelon&#x2F;blob&#x2F;master&#x2F;AwelonProject.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dmbarbour&#x2F;awelon&#x2F;blob&#x2F;master&#x2F;AwelonProjec...</a><p>And perhaps more in the &quot;next five years&quot; category:<p>* Om Next by David Nolen: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=MDZpSIngwm4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=MDZpSIngwm4</a><p>* Elm by Evan Czaplicki: <a href="http:&#x2F;&#x2F;elm-lang.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;elm-lang.org&#x2F;</a>
DonaldFiskover 9 years ago
Me.<p>I&#x27;m working on Full Metal Jacket, a strongly-typed, visual, pure dataflow language (<a href="http:&#x2F;&#x2F;web.onetel.com&#x2F;~hibou&#x2F;fmj&#x2F;FMJ.html" rel="nofollow">http:&#x2F;&#x2F;web.onetel.com&#x2F;~hibou&#x2F;fmj&#x2F;FMJ.html</a>) with its own IDE.<p>Things have advanced a fair bit since I wrote those pages, and published the recent paper, so I&#x27;ll add to the tutorials very soon, and announce this in Hacker News. Type definition, macros, and a few other things have been added to the language.<p>.303 shared-source release approaches, but I don&#x27;t do deadlines.<p>No battle plan survives contact with the enemy, but I have some ideas for future directions, including adding dependent types, running on a multi-core machine with speculative execution, and automatic programming (i.e. user supplies just inputs and outputs). Very long-term ideas involve a developing a variant of the language which enables programs to run backwards, to enable execution on a gated quantum computer.
评论 #10929256 未加载
评论 #10927694 未加载
评论 #10928066 未加载
评论 #10929796 未加载
rntzover 9 years ago
Sean McDirmid&#x27;s work on Glitch is an interesting (and distinctly contra- the current &quot;FP all the things!&quot; zeitgeist) approach to live programming: <a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;people&#x2F;smcdirm&#x2F;" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;people&#x2F;smcdirm&#x2F;</a><p>Conal Elliott&#x27;s work on Tangible FP was an interesting attempt to unify functional and &quot;visual&quot; programming that has been mostly abandoned: <a href="http:&#x2F;&#x2F;conal.net&#x2F;papers&#x2F;Eros&#x2F;" rel="nofollow">http:&#x2F;&#x2F;conal.net&#x2F;papers&#x2F;Eros&#x2F;</a> Hopefully some of its ideas may yet survive in other projects.<p>The Berkeley Orders of Magnitude project is somewhere at the intersection of database and PL research, aimed at handling orders of magnitude more data with orders of magnitude less code: <a href="http:&#x2F;&#x2F;boom.cs.berkeley.edu&#x2F;" rel="nofollow">http:&#x2F;&#x2F;boom.cs.berkeley.edu&#x2F;</a> The Dedalus language in particular is interesting, as it integrates distributed- and logic-programming: <a href="http:&#x2F;&#x2F;www.eecs.berkeley.edu&#x2F;Pubs&#x2F;TechRpts&#x2F;2009&#x2F;EECS-2009-173.html" rel="nofollow">http:&#x2F;&#x2F;www.eecs.berkeley.edu&#x2F;Pubs&#x2F;TechRpts&#x2F;2009&#x2F;EECS-2009-17...</a><p>Joe Armstrong&#x27;s thoughts on a module- or namespace-less programming environment are interesting: <a href="http:&#x2F;&#x2F;erlang.org&#x2F;pipermail&#x2F;erlang-questions&#x2F;2011-May&#x2F;058768.html" rel="nofollow">http:&#x2F;&#x2F;erlang.org&#x2F;pipermail&#x2F;erlang-questions&#x2F;2011-May&#x2F;058768...</a><p>I&#x27;ve been meaning to write a blog post about the convergence of various ideas of what the future of programming might look like for a while now, so I have a bunch of notes on this topic. The OP &amp; other folks have already mentioned most of the other projects in my notes - in particular Unison, Subtext, Eve, &amp; Bret Victor&#x27;s work.<p>My current line of work is on tackling a tiny little corner of what I see as the future&#x27;s problems - trying to find a better way to combine database&#x2F;relational programming and functional programming. My work is here (but the docs are almost entirely in type-theory-jargon at the moment, sorry! feel free to shoot me an email if you have questions): <a href="https:&#x2F;&#x2F;github.com&#x2F;rntz&#x2F;datafun" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rntz&#x2F;datafun</a>
评论 #10934289 未加载
tolmaskyover 9 years ago
We&#x27;re working on <a href="http:&#x2F;&#x2F;tonicdev.com" rel="nofollow">http:&#x2F;&#x2F;tonicdev.com</a> . You can read a bit about it here <a href="http:&#x2F;&#x2F;blog.tonicdev.com&#x2F;2015&#x2F;09&#x2F;10&#x2F;time-traveling-in-node.js-notebooks.html" rel="nofollow">http:&#x2F;&#x2F;blog.tonicdev.com&#x2F;2015&#x2F;09&#x2F;10&#x2F;time-traveling-in-node.j...</a> or just try it yourself.<p>Some guiding principles:<p>1. So much of what hinders programmers is that the friction to using existing solutions is so high that they choose to redo the work themselves. In Tonic we&#x27;ve made every package for javascript immediately available (over 200,000), so that you can focus on putting existing pieces together. We keep adding them as they come in immediately, as well as making notebooks accessible to each other. Its like you have access to the global library.<p>2. There shouldn&#x27;t be any snippet of code online that isn&#x27;t runnable. Every example you read on the internet should be immediately runnable (regardless of whether it require binary packages or what have you). The difference in understanding when you can tweak an example and see what happens vs just cursory reading over it and thinking you get it is huge. Tonic embeds allows this: <a href="https:&#x2F;&#x2F;tonicdev.com&#x2F;docs&#x2F;embed" rel="nofollow">https:&#x2F;&#x2F;tonicdev.com&#x2F;docs&#x2F;embed</a>
评论 #10935082 未加载
ping010pongover 9 years ago
<a href="http:&#x2F;&#x2F;urbit.org&#x2F;docs&#x2F;theory&#x2F;whitepaper" rel="nofollow">http:&#x2F;&#x2F;urbit.org&#x2F;docs&#x2F;theory&#x2F;whitepaper</a>
评论 #10928621 未加载
评论 #10933618 未加载
_mhr_over 9 years ago
My primary concern is with personal knowledge bases [1]. This intersects with new approaches to programming, because programs and algorithms are an aspect of and a way of interacting with knowledge.<p>It&#x27;s mostly conceptual right now, but my idea is to represent knowledge as a hypergraph with spatial and temporal dimensions on both edges and vertices. This, I hope, could represent every kind of knowledge I can imagine. The hypergraph would function as a filesystem and database, and you could query&#x2F;program the system. It would be Emacs for all media, and not just text.<p>I want to augment the inherent power of the hypergraph with a mashup of the OpenEndedGroup&#x27;s Field, Xerox PARC&#x27;s Smalltalk, Doug Engelbart&#x27;s NLS, Symbolics&#x27; Open Genera, org-mode, Vim, the Wolfram Language, Bell Labs&#x27; Plan 9, and Ted Nelson&#x27;s ZigZag and Xanadu projects.<p>If anyone finds this interesting and wants to chat about this stuff, please email me at the email address in my profile.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Personal_knowledge_base" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Personal_knowledge_base</a>
mamcxover 9 years ago
I&#x27;m working in a relational language like <a href="http:&#x2F;&#x2F;www.try-alf.org&#x2F;blog&#x2F;2013-10-21-relations-as-first-class-citizen" rel="nofollow">http:&#x2F;&#x2F;www.try-alf.org&#x2F;blog&#x2F;2013-10-21-relations-as-first-cl...</a>.<p>However a noob in building a language ;)<p>I have learn a lot of stuff. For example, columnar-stores provide some nice oportunities to manage data in-memory + compress values in columns.<p>Sorting, joining &amp; selecting on multiple-arrays that are a necessity for OLAP queries translate well to the need of normal programming.<p>SQL is a overcomplication and a bad &quot;programming&quot; language. Unfortunately, the only practical way to interface with most databases.<p>If my plan work, this could be good to build a relational store, that with let your to say: The name is a string, and I need to search on it. A normal engine will need to store it again in a index. I will say instead, the name column is the index and the values are stored once.<p>Or something like that.<p>BTW: A relation have some simmetry with inmutable functions, but I still don&#x27;t know how exploit this fact
评论 #10928292 未加载
solomatovover 9 years ago
JetBrains MPS: <a href="https:&#x2F;&#x2F;www.jetbrains.com&#x2F;mps&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.jetbrains.com&#x2F;mps&#x2F;</a>
PeCaNover 9 years ago
I&#x27;m building a language for learning to program on smartphones. It&#x27;s a stack-based language designed for interactive editing (since typing code on a smartphone is no fun).<p>It&#x27;s in the very early stages at the moment.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;alpha123&#x2F;vio" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alpha123&#x2F;vio</a>
jamiiover 9 years ago
Microsoft have done some great and totally ignored work with embedding visual languages into game engines for kids - <a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;projects&#x2F;kodu&#x2F;" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;projects&#x2F;kodu&#x2F;</a> <a href="http:&#x2F;&#x2F;welcome.projectspark.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;welcome.projectspark.com&#x2F;</a><p>Wrt to Code Lauren you may also be interested in <a href="http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~NatProg&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;www.cs.cmu.edu&#x2F;~NatProg&#x2F;index.html</a> - a HCI approach to tooling (the WhyLine is my favourite).<p>Dog hasn&#x27;t released much info yet but it&#x27;s an interesting concept - <a href="http:&#x2F;&#x2F;dl.acm.org&#x2F;citation.cfm?id=2502026" rel="nofollow">http:&#x2F;&#x2F;dl.acm.org&#x2F;citation.cfm?id=2502026</a> <a href="https:&#x2F;&#x2F;www.media.mit.edu&#x2F;research&#x2F;groups&#x2F;social-computing" rel="nofollow">https:&#x2F;&#x2F;www.media.mit.edu&#x2F;research&#x2F;groups&#x2F;social-computing</a><p>Program synthesis is really interesting area of research eg <a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;sumitg&#x2F;" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;um&#x2F;people&#x2F;sumitg&#x2F;</a><p>VPRI has already been mentioned but I&#x27;d like to highlight their work on Programming as Planning - <a href="http:&#x2F;&#x2F;www.vpri.org&#x2F;pdf&#x2F;m2009001_prog_as.pdf" rel="nofollow">http:&#x2F;&#x2F;www.vpri.org&#x2F;pdf&#x2F;m2009001_prog_as.pdf</a><p>From the last FPW, there were a couple of projects that really stood out for me: <a href="http:&#x2F;&#x2F;probcomp.csail.mit.edu&#x2F;bayesdb&#x2F;" rel="nofollow">http:&#x2F;&#x2F;probcomp.csail.mit.edu&#x2F;bayesdb&#x2F;</a> <a href="http:&#x2F;&#x2F;2015.splashcon.org&#x2F;event&#x2F;fpw2015-an-end-user-programming-environment-that-s-cell-based-copy-paste-friendly-with-a-flat-and-forward-execution-model" rel="nofollow">http:&#x2F;&#x2F;2015.splashcon.org&#x2F;event&#x2F;fpw2015-an-end-user-programm...</a><p>Also not really a new language, but Sam Aarons work on Sonic Pi is pedagogically interesting - <a href="http:&#x2F;&#x2F;sonic-pi.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;sonic-pi.net&#x2F;</a>
zyxzevnover 9 years ago
Unseen<p>A Functional and Logical Dataflow language.<p><a href="http:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;unseen_programming" rel="nofollow">http:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;unseen_programming</a><p>Status: under development.<p>Functions are components, which can be used recursively. Arrows are logical relations between these functions. Inspired by Scala and VHDL.<p>The logic and flow deal with the control and time aspect.<p>Testing and commenting is integrated in the graphical system as different layers. All graphical structures can be converted to (reasonably) simple text, resembling Scala.
pklauslerover 9 years ago
Looking at hardware trends on servers, in the next ten years I expect more pure functional programming on the CPU (implicitly concurrent, write-once data structures) and more data-parallel array operations being offloaded to GPUs. The CPU language of 2025 is probably something very much like Haskell with a cleaned-up base library, but I&#x27;m not sure what the GPU component will look like to the programmer.
评论 #10928670 未加载
westoncbover 9 years ago
For a meditation on which aspects of our text-based programming tools derive from merits of the medium versus historical accident, see: <a href="http:&#x2F;&#x2F;westoncb.blogspot.com&#x2F;2015&#x2F;06&#x2F;why-programming-languages-dont-have.html" rel="nofollow">http:&#x2F;&#x2F;westoncb.blogspot.com&#x2F;2015&#x2F;06&#x2F;why-programming-languag...</a> —there&#x27;s also a second part (linked to within) that describes an alternate, general purpose architecture for programming tools that lets us stay powerfully text-centric while moving away from operating on character sequences under the hood.<p>I wrote this non-traditional program editor: <a href="https:&#x2F;&#x2F;youtu.be&#x2F;tztmgCcZaM4?t=1m32s" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;tztmgCcZaM4?t=1m32s</a><p>And a new kind of visual debugger: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=NvfMthDInwE" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=NvfMthDInwE</a>
eecksover 9 years ago
&gt; * Eve by Kodowa: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VZQoAKJPbh8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=VZQoAKJPbh8</a><p>This guy seems kinda young. Does anyone think that the future of programming can come from people without extensive programming experience of current programming?
sarmadover 9 years ago
I am. I am working on a new programming language designed for the next generations. The language re-imagines the role of the compiler from being a monolithic static blackbox that converts source to executable, into being an open dynamic system the manages the language syntax and compilation process, but leaves the final syntax and actual compilation to hot pluggable libraries. Why? To make the language dynamically upgradable, and on a per-project basis. This is the only way to make a language future-proof. More details: <a href="http:&#x2F;&#x2F;alusus.net" rel="nofollow">http:&#x2F;&#x2F;alusus.net</a> <a href="http:&#x2F;&#x2F;alusus.net&#x2F;overview" rel="nofollow">http:&#x2F;&#x2F;alusus.net&#x2F;overview</a> P.S. the project is still at a very early stage, but a proof of concept is there.
评论 #10928744 未加载
评论 #10928494 未加载
zitterbewegungover 9 years ago
Everyone doing probabilistic programming. Can&#x27;t really give a summary<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Probabilistic_programming_language" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Probabilistic_programming_lang...</a><p>Formal verification using ACL2 or Coq or other tools also.
评论 #10927164 未加载
marknadalover 9 years ago
I think &quot;visual&quot; programming is the incorrect approach, something I would like to see more of is &quot;tactile-spatial&quot; programming. Anybody have an example of these? Most work I&#x27;ve seen is visual&#x2F;flowchart which is not optimal for touch devices or large projects.
评论 #10929745 未加载
评论 #10931877 未加载
xjayover 9 years ago
Like many people, I think about this now and then, but I haven&#x27;t done any work in that area. Ultimately, I picture a live environment, but not like Blueprint in UE4.<p>I expect we&#x27;ll end up with a predominantly interactive approach to programming, most likely visual drag-and-drop style programming, in a live environment that knows common patterns, data structures, algorithms; giving real-time advice, showing native code output as you go, etc. Basically, you&#x27;re molding the system while monitoring it under various contexts, and you&#x27;re programming against data models.<p>Got a new Arduino board? Just drag and drop the data sheet model into your environment. It contains memory address information, read&#x2F;write contexts, access protocols, contexts, etc for every component, and how they&#x27;re connected. Now you design the rest of the logic.<p>&quot;A programming language is a user interface as much as it is any other thing. Why have multiple ones? They are all Turing equivalent.&quot;—Alan C. Kay (see the talk for the context of the quote; starts at around 23:25)<p>&quot;Rethinking CS Education | Alan Kay, CrossRoads 2015.&quot; <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=N9c7_8Gp7gI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=N9c7_8Gp7gI</a><p>&quot;Most computer people went into computing because they were disturbed by other human beings.&quot;—Alan C. Kay
chenglouover 9 years ago
Lamdu: <a href="http:&#x2F;&#x2F;www.lamdu.org" rel="nofollow">http:&#x2F;&#x2F;www.lamdu.org</a>
nicklovescodeover 9 years ago
I&#x27;m working on a new approach to programming that is in the direction of Bret Victor&#x27;s Inventing on Prínciple (focusing on environment, all open source)<p>Because we&#x27;re prelaunch(and working hard on getting it to all of you!) I can&#x27;t talk about it much yet, but we&#x27;re funded and looking to work with great people.<p>Email me at cammarata.nick@gmail.com if you&#x27;re interested in this space, would love to hear ideas and talk more.
david927over 9 years ago
Kayia was presented at the Future of Programming at Strange Loop a little over a year ago.<p><a href="http:&#x2F;&#x2F;kayia.org" rel="nofollow">http:&#x2F;&#x2F;kayia.org</a>
drostieover 9 years ago
Viewpoints Research Institute, see e.g. <a href="http:&#x2F;&#x2F;vpri.org&#x2F;html&#x2F;writings.php" rel="nofollow">http:&#x2F;&#x2F;vpri.org&#x2F;html&#x2F;writings.php</a> which has papers like &quot;Checks and Balances - Constraint Solving without Surprises in Object-Constraint Programming Languages&quot; and Alessandro Warth&#x27;s &quot;Experimenting With Programming Languages&quot; (which led to OMeta&#x2F;JS, which is I think on GitHub), as well as a ton of Alan Kay talks on fundamental new computing technologies <a href="http:&#x2F;&#x2F;vpri.org&#x2F;html&#x2F;words_links&#x2F;links_ifnct.htm" rel="nofollow">http:&#x2F;&#x2F;vpri.org&#x2F;html&#x2F;words_links&#x2F;links_ifnct.htm</a> .<p>The way that Datomic uses Datalog is really interesting from a perspective of &quot;new approach to programming&quot; (databases).<p>Erik Demaine&#x27;s course on advanced data structures gives some interesting ideas for time-travel-based games: <a href="https:&#x2F;&#x2F;courses.csail.mit.edu&#x2F;6.851&#x2F;spring14&#x2F;" rel="nofollow">https:&#x2F;&#x2F;courses.csail.mit.edu&#x2F;6.851&#x2F;spring14&#x2F;</a> . His work also has application to other fields like creating an efficient in-app version control system <a href="http:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~ecprice&#x2F;papers&#x2F;confluent_swat.pdf" rel="nofollow">http:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~ecprice&#x2F;papers&#x2F;confluent_swat.pdf</a> .<p>Lots of cool stuff on HaskellWiki; for example <a href="https:&#x2F;&#x2F;wiki.haskell.org&#x2F;Functional_Reactive_Programming" rel="nofollow">https:&#x2F;&#x2F;wiki.haskell.org&#x2F;Functional_Reactive_Programming</a> .<p>If you really want to jump into the deep end there&#x27;s a whole blog called Lambda: the Ultimate about new approaches to programming: <a href="http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;</a>
lmeyerovover 9 years ago
Program synthesis: see work by Ras Bodik&#x27;s team at Berkeley (now UW) and descendants in Armando&#x27;s MIT team and Sumit Gulwani&#x27;s MSR team.<p>As a concrete examples making industry waves, see Excel&#x27;s new Flashfill and Trifacta ETL wrangling product.<p>Underneath, these use search (ML, SMT, ...) to allow non-tradiotional &amp; sloppy coding: fill in the blanks, program by demonstration, etc.
评论 #10928120 未加载
cycomacheadover 9 years ago
From Scratch you should checkout Snap! and snap.berkeley.edu<p>John Maloney (co-inventor of Scratch), Jens Moenig (who was on the Scratch Team and develops Snap!), along with Yoshiki Oshima (who may also have been on the Scratch team), are deveolping a new langauge &quot;GP&quot; (for General Purpose) which like &quot;professional Scratch&quot;.<p>Here&#x27;s a video of it: <a href="https:&#x2F;&#x2F;www.google.com&#x2F;url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwjvvvvGwsbKAhUG8mMKHfmXDvQQtwIIHTAA&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCnvoz_5_YiI&amp;usg=AFQjCNEkAdQeWLqxHbHB8a0IyNSaJKXVVg&amp;sig2=1n0QOMDvJcvdFA_W202QVA" rel="nofollow">https:&#x2F;&#x2F;www.google.com&#x2F;url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;c...</a><p>There&#x27;s also lots of extenstions to Scratch and Snap! particularly around CS education, and I&#x27;d be happy to discuss those!
petraover 9 years ago
STEPS by alan kay(building a full OS including applications in 20K LOC: <a href="http:&#x2F;&#x2F;blog.regehr.org&#x2F;archives&#x2F;663" rel="nofollow">http:&#x2F;&#x2F;blog.regehr.org&#x2F;archives&#x2F;663</a><p>Spiral <a href="http:&#x2F;&#x2F;www.spiral.net&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;www.spiral.net&#x2F;index.html</a> and spiralgen - going straight from math to code optimized for multiple platforms: <a href="http:&#x2F;&#x2F;www.spiralgen.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.spiralgen.com&#x2F;</a><p>Automatically solving bugs using genetic algorithms : <a href="http:&#x2F;&#x2F;dijkstra.cs.virginia.edu&#x2F;genprog&#x2F;" rel="nofollow">http:&#x2F;&#x2F;dijkstra.cs.virginia.edu&#x2F;genprog&#x2F;</a><p>Automatic bug repair(2015): <a href="http:&#x2F;&#x2F;news.mit.edu&#x2F;2015&#x2F;automatic-code-bug-repair-0629" rel="nofollow">http:&#x2F;&#x2F;news.mit.edu&#x2F;2015&#x2F;automatic-code-bug-repair-0629</a>
rl3over 9 years ago
<a href="https:&#x2F;&#x2F;treeline.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;treeline.io&#x2F;</a><p>YC company run by Mike McNeil. Visual backend programming. Built off Node, Sails and Machine Spec. The latter is particularly interesting:<p><a href="http:&#x2F;&#x2F;node-machine.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;node-machine.org&#x2F;</a>
评论 #10931863 未加载
nickpsecurityover 9 years ago
I&#x27;m doing several myself at an abstract level given lack of time or resources. I feed what I learn in them to pro&#x27;s for potentially seeing it built. Here&#x27;s a few:<p>1. Modula-2-style systems language with macros, better typing, and typed assembler to replace C with minimal hit on performance or ease of use.<p>2. Relatively-simple, imperative language plus translators to equivalent functionality in mainstream languages to leverage their static analysis or testing tools if possible.<p>3. Unified architecture to natively represent and integrate both imperative (C or Modula style) and functional (Ocaml or Haskell style) languages. Extensions for safety&#x2F;security at hardware level for both.<p>4. Hardware&#x2F;software development system using Scheme or abstract, state machines that can turn a high-level description into software, hardware, or integrated combo of both.<p>5. Defining TCB&#x27;s for type systems, OS architectures, etc that minimize what must be trusted (mathematically verified) to ensure invariants apply while maximizing expressiveness. crash-safe.org and CertiKOS are more concrete, useful, and professional versions of what I&#x27;m getting at with 5.<p>6. Building on 5, a series of consistent ways of expressing one program that capture sequential, concurrent, failure, integration, and covert channel analysis in a clean way for formal analysis. As in, an all-in-one high assurance toolkit that automates the common stuff a la static analysis or reusable, composable proofs. And makes hard stuff easier for pro&#x27;s.<p>7. Occasional thoughts on automatic programming via heuristics, patterns, rules, human-guided transforms, and so on. Got me started in advanced SW and my mind occasionally goes back to possibilities for achieving it.<p>8. A way to do any of that with the rapid iteration, safety, performance, live updating, and debugging properties of Genera LISP machine. I mean, we <i>still</i> don&#x27;t have all that in mainstream tooling? ;)
magicmouseover 9 years ago
I am working on a new computer language called Beads, which is designed to replace the current development stack for both personal computers, mobile devices, and web. You can find out more about this project at e-dejong.com<p>The focus of my tool is creating graphical interactive software: iphone and Android apps, desktop apps, and things that run in the browser. The notation is compact, readable, and straightforward. It has many innovative aspects: new data structures, physical units (something FORTRAN just got after 30 years in the in-basket), and deductive reasoning which dramatically reduces the length of programs. It is not a design by graphics system, but a language. It isn&#x27;t that abstract, and is far more straightforward than Haskell or PROLOG. It is not a LISP derivative.
philip142auover 9 years ago
There are many different projects, I feel however that Idris and Scala are the places where innovation should be done. Although there are ideas in Subtext, etc, they should be implemented as libraries in Idris or Scala to gain the maximum usage from developers.
reptationover 9 years ago
Jordan Pollack&#x27;s group is interesting (genetic algorithms, etc.): <a href="http:&#x2F;&#x2F;www.cs.brandeis.edu&#x2F;~pollack&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.cs.brandeis.edu&#x2F;~pollack&#x2F;</a> Web page is hilariously archaic as bonus
lebekover 9 years ago
The Augmented Programming group: <a href="https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!forum&#x2F;augmented-programming" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!forum&#x2F;augmented-programmin...</a>
protomythover 9 years ago
I still think there is something to agent oriented programming. Yoav Shoham <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Yoav_Shoham" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Yoav_Shoham</a> <a href="http:&#x2F;&#x2F;www.infor.uva.es&#x2F;~cllamas&#x2F;MAS&#x2F;AOP-Shoham.pdf" rel="nofollow">http:&#x2F;&#x2F;www.infor.uva.es&#x2F;~cllamas&#x2F;MAS&#x2F;AOP-Shoham.pdf</a> <a href="http:&#x2F;&#x2F;robotics.stanford.edu&#x2F;~shoham&#x2F;" rel="nofollow">http:&#x2F;&#x2F;robotics.stanford.edu&#x2F;~shoham&#x2F;</a>
评论 #10929040 未加载
thangalinover 9 years ago
Relational XPath Map (rxm) provides a syntactically terse domain-specific language (DSL) to query relational databases and generate structured documents.<p><a href="https:&#x2F;&#x2F;bitbucket.org&#x2F;djarvis&#x2F;rxm&#x2F;" rel="nofollow">https:&#x2F;&#x2F;bitbucket.org&#x2F;djarvis&#x2F;rxm&#x2F;</a><p><a href="https:&#x2F;&#x2F;bitbucket.org&#x2F;djarvis&#x2F;rxm&#x2F;wiki&#x2F;Discussion" rel="nofollow">https:&#x2F;&#x2F;bitbucket.org&#x2F;djarvis&#x2F;rxm&#x2F;wiki&#x2F;Discussion</a><p>Currently generates SQL code from a DSL, which can be run against a database to produce an XML document.
magicmouseover 9 years ago
I really love Jonathan Edward&#x27;s chart where he shows the big stack of technologies one has to master to build apps today. The goal is to replace that entire stack with one language. That would be the 10:1 improvement that would really make a difference. The burning question therefore, is what can replace that entire stack? Clearly you have to offer a way of storing and structuring data that improves upon the table. otherwise you are back in relational database hell.
d08bleover 9 years ago
I also interested in new ways for minimal coding &amp; debugging.<p>I&#x27;m working on Animation CPU platform, ACPUL declarative algorithmic language for same purposes.<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ubNfWarTawI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ubNfWarTawI</a><p><a href="http:&#x2F;&#x2F;acpul.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;acpul.org&#x2F;</a><p>Also LiveComment information tool:<p><a href="http:&#x2F;&#x2F;acpul.org&#x2F;livecomment" rel="nofollow">http:&#x2F;&#x2F;acpul.org&#x2F;livecomment</a>
noblethrasherover 9 years ago
Alan Kay’s Viewpoints Research Institute: <a href="http:&#x2F;&#x2F;vpri.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;vpri.org&#x2F;</a> (with which Bret Victor is associated).
amirmcover 9 years ago
Probabilistic programming might interest you.<p>e.g. <a href="http:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1507.00996" rel="nofollow">http:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1507.00996</a>
crb002over 9 years ago
I&#x27;ve been toying around with the idea of SPL, Species Programming Language. See Brent Yorgey&#x27;s thesis. Like APL, functions would be able to match where they bind within a data structure. Instead of just multidimensional arrays it would handle all combinatorial species; think lists, trees, graphs, cycles, ...<p>Still haven&#x27;t found a syntax I like yet. Yorgey and Classen both have nice Haskell libraries as a springboard.
jonathanedwardsover 9 years ago
Wow, these comments mentions lots of work I wasn&#x27;t aware of! We&#x27;ve been building a community of people working in this area: the Future Programming Workshop. <a href="http:&#x2F;&#x2F;www.future-programming.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.future-programming.org&#x2F;</a> We will all do better if we get together to exchange ideas and criticism. Suggestions for improving FPW are welcome.
评论 #10949258 未加载
petkeover 9 years ago
Personally I think in the next 30 years we will be programming with thesame languages popular today. They will evolve to handle multicore better though. With tasks, async, couruoutines, actors, etc. Before too long we will have a mix of thousands of cores. Gpu, cpu, remote cores. We will have to figure out how to spread our programs across all of them. Well all be doing supercomputing.
评论 #10927780 未加载
Permitover 9 years ago
I&#x27;m working on a live programming plugin for Visual Studio that supports C#: <a href="http:&#x2F;&#x2F;comealive.io" rel="nofollow">http:&#x2F;&#x2F;comealive.io</a><p>Previously we&#x27;d developed a code exploration tool: <a href="http:&#x2F;&#x2F;codeconnect.io" rel="nofollow">http:&#x2F;&#x2F;codeconnect.io</a>
phodoover 9 years ago
It might be worth checking out ethereum.org and the work they are doing there on their blockchain, as well as serpent &#x2F; solidity programming languages. Also, check out ipfs. The distributed computation and storage model has broad applicability, and a good lens from which to view the world.
auxiover 9 years ago
<a href="http:&#x2F;&#x2F;www.clafer.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.clafer.org&#x2F;</a> Lightweight modeling<p><a href="http:&#x2F;&#x2F;categoricaldata.net&#x2F;fql.html" rel="nofollow">http:&#x2F;&#x2F;categoricaldata.net&#x2F;fql.html</a> FQL Functorial Query Languages
jngover 9 years ago
Intentional Programming (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Intentional_programming" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Intentional_programming</a>), started by Charles Simony
ISNITover 9 years ago
Chris Granger seems to be doing some awesome work with &#x27;Eve&#x27;: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5V1ynVyud4M" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5V1ynVyud4M</a>
beefmanover 9 years ago
I spent a day looking at these back in August. Summary is here:<p><a href="https:&#x2F;&#x2F;gist.github.com&#x2F;clumma&#x2F;58253f3692e4c1c28087" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;clumma&#x2F;58253f3692e4c1c28087</a>
jakeoghover 9 years ago
Sylph is interesting: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9126772" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9126772</a>
surfmikeover 9 years ago
CDG (Communications Design Group) at SAP is where Bret Victor and a lot of other people work on research. I think a big focus is changing how we program in the future.
jonbaerover 9 years ago
Social Machines by Mark Stahl ... <a href="https:&#x2F;&#x2F;github.com&#x2F;socialmachines" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;socialmachines</a>
dukoidover 9 years ago
I am working on FlowGrid (Visual dataflow on Android): <a href="http:&#x2F;&#x2F;flowgrid.org" rel="nofollow">http:&#x2F;&#x2F;flowgrid.org</a>
erikjover 9 years ago
Wolfram Mathematica is a pretty old project, did it change much over the last five years?
评论 #10929827 未加载
mikekcharover 9 years ago
This may be a strange way of looking at it, but let&#x27;s backtrack 30 years before and see what made the biggest differences. As I&#x27;ve been in the industry for about thirty years, my impression is that nothing much has changed. That seems strange, but it&#x27;s still the same job that I started with.<p>For me it is interesting that in my career, code base sizes grew to gigantic proportions -- there are many applications that are 10s of millions of lines of code. In the middle of my career I worked on a few. Interestingly, I&#x27;m doing web development now and a lot of my colleagues think that 5000 lines is unbearably big. I think the take-away here is that we have gotten slightly better at abstracting things out and using development libraries (and dare I say, frameworks).<p>OO was just becoming a big thing at the start of my career. Everybody did it incredibly badly. Then Kent Beck and Ward Cunningham came along and told people how to do it not-so-badly. I think the biggest thing that I saw in this time frame was the breaking of the myths of OO being about code re-use, and the movement away from huge brittle design structures. Good OO developers moved back to the really basic ideals of dealing with coupling and cohesion in design. We even started to have a language to be able to discuss design intelligently. Of course, quite a huge number of people were oblivious to this, but it always struck me how amazing it was that Beck and Cunningham were really 15 years ahead of most of the rest of us.<p>Lately, functional programming is coming into vogue. For the second time in my career I was surprised. People in the know are talking about idempotence, and immutable structures. This was the stuff that the crazy people were talking about in the 80&#x27;s -- stuff that was &quot;too slow&quot;, and &quot;too memory intensive&quot; to take seriously. But now it&#x27;s pretty obvious this is the way to go.<p>I think the other big thing that blew me away in the last 30 years was testing. Probably some people will remember pre-conditions, post-conditions, and class invariants. This was unfortunately forgotten by most, but the most astonishing thing was unit testing. Especially the practice of Test Driven Development that not only allowed you to document your code with executable examples, but also forced you to decouple your objects&#x2F;modules by the very behaviour that creates the documentation. Very few people do this well (just like most of the other things I&#x27;ve mentioned), but it is completely game changing.<p>As for the future, what is coming up? I suggest you look at what has gone before you for hints to that. In the last 30 years, apart from TDD (which came completely out of the blue as far as I could tell), the major advancements came from stuff we already knew about. It was the stuff that the &quot;crazy&quot; people advocated in the 70&#x27;s and 80&#x27;s, but that seemed impractical. If I were to guess, I suspect that we will see further progress on decoupling in design. Immutable data structures will not just be common, they will be how ever professional designs code. As performance moves from single processing to multi-processing, this will be important. Look at innovative ways of processing like flow based processing and other crazy ideas from bygone years.<p>My last piece of advice: Don&#x27;t look for large revolutionary changes. I think those are unlikely. The programmer of 30 years from now will probably still be doing the same job as I am today. The changes will be much more qualitative. Also, expect that the vast majority of programmers will be as oblivious to the advancements as most programmers are today.
Lofkinover 9 years ago
Thoughts on Julia?
DrNukeover 9 years ago
IMHO machine learning will automate coding to such an extent we all but a few will be unemployed.
iheartmemcacheover 9 years ago
This is a really broad question, about on par with asking &quot;which fashion houses are putting out daring material and what will Dior be making that&#x27;s popular 30 years from now&quot;. Software is just like any other cargo-cult industry where trends rise and fall almost like clockwork. From Rails, to Angular, to React.<p>RE: People&#x2F;Groups who are researching &#x27;new approaches to programming&#x27; - you have the typical universities putting out papers. Conferences like POPL and ICFP tend to be where most of the major academic work gets put out. From within the industry, commercial entities aren&#x27;t really doing much, bar Microsoft Research, Cambridge (UK, not MA). They&#x27;re really pushing the envelope with regards to strict PL research. www.rise4fun.com to see the dozens of projects they&#x27;re putting out. Oracle, too, is surprisingly doing some interesting work.<p>30 years is a hard guess, but 5 years you&#x27;ll certainly see: 1) a lot more emphasis on concurrency, at 14nm we&#x27;re rapidly approaching the physical limitation of transistor density (which is why you&#x27;re seeing 18 core Xeons). Sharing memory is notoriously hard, so the move towards immutability (whether it&#x27;s pass by ref const in &#x27;traditional&#x27; languages like C++ or more esoteric languages like Haskell, that&#x27;s the direction it&#x27;s going in, whether by using the actor model, STM, etc) 2) Especially with Intel&#x27;s Knight&#x27;s Landing. RDMA has been around for ages, but bringing it to Xeon means the common-man doesn&#x27;t have to pay Infiniband prices for HBAs. RAM has been getting cheaper but imagine being able to just deck out a 42u filled to the brim with ~18 2u&#x27;s of half a TB of DDR4 RDIMM a piece that your main application can access. 3) Disks, which used to be a huge thrashing bottleneck (who here is old enough to remember thrashing on GCC 2.95 when trying to compile E17?), are now posting amazing numbers, even for SSDs.<p>Effectively every level of computing that used to be a barrier (minus SRAM and the CPU caches which seem to have been stuck at the same spot for a while in terms of capacity) has, or will within 6 months be consumer accessible. I couldn&#x27;t guess what&#x27;s going to happen in 5 years. I can&#x27;t even guess what&#x27;s going to happen in 5 months and I&#x27;ve been at this nearly 20 years.
评论 #10926743 未加载
评论 #10927045 未加载
评论 #10929066 未加载
joshkpetersonover 9 years ago
Ramsey Nasser is developing a language written entirely in arabic. <a href="http:&#x2F;&#x2F;nas.sr&#x2F;%D9%82%D9%84%D8%A8&#x2F;" rel="nofollow">http:&#x2F;&#x2F;nas.sr&#x2F;%D9%82%D9%84%D8%A8&#x2F;</a>
sklogicover 9 years ago
My research is on hierarchies of composable domain-specific languages (see github, account &#x27;combinatorylogic&#x27;).
评论 #10934558 未加载