https://futureofcoding.org/ logo
Docs
Join the conversationJoin Slack
Channels
administrivia
announcements
bot-dark-forest
devlog-together
in-alberta
in-boston
in-germany
in-israel
in-london
in-nyc
in-ontario
in-seattle
in-sf
in-socal
introduce-yourself
linking-together
of-end-user-programming
of-functional-programming
of-graphics
of-logic-programming
of-music
present-company
random-encounters
reading-together
share-your-work
thinking-together
two-minute-week
wormholes
Powered by Linen
thinking-together
  • m

    Mason

    12/10/2019, 6:04 AM
    What is the state of the art in graphical (nodes and edges) programming? Anything general purpose? Or is this limited to a few domains?
    i
    d
    +5
    • 8
    • 27
  • p

    Pezo - Zoltan Peto

    12/10/2019, 5:43 PM
    Hi guys! I have an idea, I believe it must exists but can’t figure out the exact keywords. First, let me enumerate the keywords which I think are related: • Transactions • OO • Eventstreams • “Transactions in OO” or “Transactions with Eventstreams” • Async & Concurrent computation • Erlang / Akka • STM (too low level?) I want to create an object graph (or eventstream graph?) where objects do not have direct reference to each other, they only communicate via messages. Objects are nodes and there is an edge from o1 to o2 if o2 is subscribed to o1 (o1 dispatches events which o2 listens to). Objects supposed to be “Processes” similar to erlang, objects are some kind of an “Async Computation”. Here comes the “new” stuff: There is also a root “StateManager” node which is subscribed to messages contain data about “UPDATING EXISTING IDENTITIES” like “SetGlobalScore <amount>“, any “Async Computation” (object) which directly depends on changing data must subscribe to this root node. If any data gets altered it does not happen immediately but via transactions. The computation which comes up with the new piece of data and wants to share it sends a message to the root “StateManager” node which handles the update. It must check if the data is in use somewhere down in the dependency graph (which I think might be a DAG with the exception of root node): if it is used, the computation might be interrupted (which is more like an exception in my mind) and the whole state might be rolled back to proper state or “handled properly”. If it is not used the state just can be updated: the root emits the message and it propagates down. This is just the core idea and quite vague, but the general goal is to add some safety to concurrent programming. Ah, and I’d like to do that everywhere, not just on server side but on client as well! 🙂
    i
    k
    e
    • 4
    • 15
  • m

    Mariano Guerra

    12/10/2019, 5:45 PM
    orleans seems to be close to it: https://dotnet.github.io/orleans/
    p
    • 2
    • 3
  • p

    Pezo - Zoltan Peto

    12/10/2019, 8:23 PM
    Another thing: I am curious how do you resonate with “Erlang + BEAM + OTP vs Java + JVM + Akka” stacks? I have almost 0 knowledge on it, read some basic articles on the comparison, but I’d really like to see what are your thoughts on that in this channel. Any theoretical or practical pennies are welcome 🙂
    m
    s
    • 3
    • 12
  • e

    Eddy Parkinson

    12/11/2019, 12:45 AM
    Low-code/no code/red-lang/spreadsheets etc - I have been thinking about no-code apps etc, the problem of how to make programming more accessible. When it comes to making programming more accessible, one challenge that I see is combining the UI, data store and calculations. It is a challenge to combine these in a way that is accessible to the masses. An example of the challenge is no-code applications. There are many no-code applications that make it easy to edit the UI and data store. They offer an easy to use solution with very little learning. But don't make calculations available. A similar problem with most low-code applications, the calculations part of low code applications is typically not accessible in the way that a spreadsheet is, for example. ... Or there is red-lang, it does a good job of linking UI and calculations, but the data store is, as far as I can tell, a regular external database. ... Or take a spreadsheet, it is good at data storage and calculations, these are both accessible with very little learning, but the UI is a problem, you can't create a regular UI with a spreadsheet, you need to use the grid. Or look at scratch (drag and drop coding) it makes calculations and game style UI available, you can create complex games with it, I was surprised how complex, and it is easy to learn, but does not do data storage or data i/o style UI. .... The hard thing looks to be making UI, data store and calculations work as one. So the calculations can do validation and control writes to the data store. So the calculations are able to produce a responsive UI that guides the user. So the data from the data store is visible and editable in the UI. ... it looks to be a hard problem to make the UI, data store and calculations work together. It can be a challenge to do this in a good programming language, and very hard to create something that is easy for people to learn.
    👍 4
    💡 1
    ☝️ 1
    i
    s
    +2
    • 5
    • 11
  • p

    Pezo - Zoltan Peto

    12/11/2019, 11:31 PM
    @Kartik Agaram is on Hn frontpage again :)
    😄 3
    k
    y
    • 3
    • 4
  • c

    curious_reader

    12/12/2019, 9:10 AM
    Who thinks this is a good opportunity to evolve how programming works by bringing multiple cultures ( industry/end user) into a discussion about how social (online) meida could look like?
    d
    s
    b
    • 4
    • 13
  • c

    Clinton Judy

    12/12/2019, 8:55 PM
    This is on Hacker News right now. Really impressed by it, and I think it's of interest to this audience. https://www.anishathalye.com/2019/12/12/constraint-based-graphic-design/
    ❤️ 11
    s
    g
    g
    • 4
    • 3
  • d

    Deklan Webster

    12/12/2019, 10:20 PM
    Anyone seen Roam Research? It's a newcomer in the notetaking Notion/Evernote/etc space. It's been getting rave reviews on nerdy parts of Twitter. The focus on alignment with thought-process seems FoC-like. Not really Future of Coding specific, but it appears to be an adjacent topic here (based on past conversation) https://roamresearch.com/
    🍰 2
    k
    g
    +2
    • 5
    • 9
  • a

    Adnan Chaumette

    12/12/2019, 11:38 PM
    Hey guys! Working on a node editor here and was curious to know if there are any similar projects out there that use auto-completion ? The idea is that you should get suggestions on what might be the best nodes that your current selection needs, regardless of whether you have those nodes in your graph or not. I can think of this vastly simplifying the loop concept for instance, where you'd suggest the user a loop node whenever they try to create a setup that requires one. Another utility here would be suggestion highlights of possible connections that you can draw between a currently selected socket and all the ones in your graph. Would love to know if there are projects out there that use a similar approach, just to make sure I'm not reinventing a wheel but improving one.
    👍 2
    i
    • 2
    • 2
  • s

    shalabh

    12/13/2019, 6:34 PM
    https://jods.mitpress.mit.edu/pub/6pewbpry
    k
    w
    d
    • 4
    • 5
  • k

    Konrad Hinsen

    12/15/2019, 4:32 PM
    Here's a well-written analysis of the state of Open Source software. Probably of interest to many in this group. http://marktarver.com/thecathedralandthebizarre.html
    d
    k
    g
    • 4
    • 9
  • e

    elbear

    12/17/2019, 3:33 PM
    hello! I’m a fan of mind maps and I’m looking to find out more about related ways of visualising information. can anyone recommend any?
    d
    a
    +3
    • 6
    • 12
  • m

    Mariano Guerra

    12/18/2019, 8:29 AM
    do you know about plan 9? what do you think about it? does it add anything to this group's objectives?
    w
    a
    • 3
    • 4
  • s

    stevekrouse

    12/18/2019, 12:57 PM
    Hey <!everyone>, big news! There's a leadership transition in the works here. Read all about it: https://www.patreon.com/posts/32445075. Comments and questions welcome :)
    😮 1
    ❤️ 9
    🤘🏼 2
    🍻 4
    🙏 3
    👍 12
    👀 4
    🤗 4
    a
    j
    +14
    • 17
    • 20
  • m

    Mariano Guerra

    12/18/2019, 11:11 PM
    hi, new experiment! 🎉 Future of Coding Weekly Newsletter, subscribe here: https://tinyletter.com/marianoguerra/ want to collaborate? check instructions here: https://github.com/marianoguerra/future-of-coding-weekly collaborate to the first edition here: https://github.com/marianoguerra/future-of-coding-weekly/issues/1 feedback/promotion more than welcome!
    🎉 8
    👍🏼 8
    s
    i
    s
    • 4
    • 6
  • i

    Ivan Reese

    12/19/2019, 8:23 PM
    PODCAST I'm working on new episodes! The first will come out in January. I'm hoping to keep a monthly cadence thereafter. The biggest constraint will be time — it currently takes me over 20 hours to make each episode — so I might adjust plans or process as we go. That said, I'm going to do everything in my power (as a music-person who owns a lot of microphones and fancy editing software, haha) to push the production quality of the podcast up to "professional" levels. (If you someday hear theme music, don't bristle — it's going to happen.) I'm also interested in trying out other formats, in addition to the "interview" and "research recap" episode styles Steve patterned. If you have suggestions for programming, production, formatting, ideal episode length, etc — I'm all ears. I've got a slate of guests lined up that I'm really excited to share with you, but I'd also like to keep the podcast very closely associated with our community. If you would like to come on the podcast to talk about your FoC project, shoot me a DM and I'll add your name to the list. Like many of you, I came to this community in the first place because of the podcast, and I'm honoured that Steve asked me to take up the torch. I'll do my best to keep the spirit intact while improving the things I can improve and despite losing Steve's unique perspective. Yes, that means more talk of visual programming than before. Yes, I will make a sincere effort to give static typing its due 🙂
    👍 8
    🎊 1
    o
    a
    +2
    • 5
    • 6
  • i

    Ivan Reese

    12/19/2019, 8:24 PM
    COMMUNITY Just this morning, Jonathan Edwards wrote something that's stuck in my mind like a burr:
    Slack is a terrible place to have conversations that last more than a day
    This resonates with me, and I know a lot of you feel similarly. We've all been in other communities hosted on other platforms, and we constantly feel the comparative weaknesses of Slack. At the same time, moving the community will lose good people, and I'm not sure we can survive that sort of a seismic shift. We could also introduce a second platform as a complement to Slack, but that doubles the effort needed to keep up. And besides, this community has remote colonies on other platforms already — Lobsters, Lambda the Ultimate, Twitter, HN, Lines, XRA's Discord, and countless others. What we have right here is what it is because of Slack. The aggressiveness with which Slack forces us to lose touch with past discussions and miss out on things happening in threads has the Twitter-like consequence of restricting how much time you can spend reading. For some that's a blessing, not a curse. If we moved to a platform with better support for long-form posts and rich threads, that would surely make it easier to read everything everyone writes, but I don't know how many of us could afford to spend that sort of time. All said, I'm very sympathetic to the position of Jonathan (et al.), and want to keep the search for alternatives alive. I like the idea of starting up a shadow community on another platform just to get a feel for it, so please keep posting suggestions for that in #meta. If enough of us are serious about moving, and we manage to agree on a spot, and we try it out and it feels good, I'd be happy to make it an official home of the community. I'm excited that Mariano Guerra is starting a community newsletter — I really hope that takes off, as it'll probably help any eventual change to the platform our community calls home. If you have any similar project you'd like to try out on behalf of the community, I have a stamp of Official Blessing that Steve left on my desk and I'm eager to use it. Of course, if you have concerns about anything that you'd rather not discuss openly, please send me a DM. I don't have any plans to explicitly change anything about how the community functions, but I am very open to new ideas. I love the energy and activity we have here. I love the split between academic research and industry practice. I love that folks are organizing meetups and helping each other find jobs. I love that many of us are working away on our own FoC projects that will take many years to come to fruition, and we'll get to share that difficult process together. Thanks everyone for making this place what it is, and I hope that we can keep it going and growing for years to come.
    🍻 1
    👏 10
    ❤️ 6
    j
    w
    +12
    • 15
    • 41
  • d

    David Piepgrass

    12/20/2019, 9:33 PM
    So VS Code is going to be more than a text editor... if I were going to make a custom editor, living in VS Code would be attractive. Looks like one must write it in TS/JS. "We continued to work on the custom editor proposal this iteration. (https://github.com/microsoft/vscode/issues/77131) As a reminder, custom editors are webview-based views that can be used in place of VS Code's normal text editor for specific file types. As of VS Code 1.41, Custom editors can now integrate with VS Code's Undo/Redo and Save functionality, which enables many interesting use cases including using them as visual and WYSIWYG editors. You can find the current API proposal in 
    vscode.proposed.d.ts
    (https://github.com/microsoft/vscode/blob/master/src/vs/vscode.proposed.d.ts) and we have also put together some very simple extension samples that demonstrate using custom editors for text and for binary files. (https://github.com/mjbvz/vscode-experimental-webview-editor-extension) If you are interested in custom editors, please share your feedback on the current proposal and let us know if you would be able to implement it."
    👍 5
    🤔 8
    s
    • 2
    • 1
  • w

    wtaysom

    12/21/2019, 6:25 PM
    Just met up with @irvin on https://hubs.mozilla.com/ to talk about visual programming languages. The VR was good for being delivered over the web. The sense of presence was great. The world was full of weird.
    👍 2
    d
    • 2
    • 2
  • m

    Mariano Guerra

    12/22/2019, 6:42 PM
    Reminder! tomorrow the first issue of Future of Coding Weekly Newsletter goes out!, subscribe here: https://tinyletter.com/marianoguerra/ want to collaborate? check instructions here: https://github.com/marianoguerra/future-of-coding-weekly collaborate to the first edition here: https://github.com/marianoguerra/future-of-coding-weekly/issues/1
    🍻 2
    🎉 11
    🙏 2
    k
    • 2
    • 1
  • m

    Mariano Guerra

    12/23/2019, 12:06 PM
    First newsletter is out! it should arrive to your mailbox soon, you can check it here if you are impatient or tinyletter doesn't work 😛 https://tinyletter.com/marianoguerra/letters/future-of-coding-newsletter-2019-12-week-4
    🎄 4
    🎉 8
    s
    m
    • 3
    • 5
  • m

    Mariano Guerra

    12/23/2019, 12:06 PM
    feedback more than welcome, I want to maximize its utility, let me know if it display correctly, if the content makes sense etc.
    i
    d
    +2
    • 5
    • 14
  • m

    Mariano Guerra

    12/23/2019, 3:12 PM
    It’s important because it’s a way to conceptualize why neural networks are in a way better than classical ML algorithms. Because this lack of leaks means that anyone can play around with them without breaking the whole thing and being thrown one level down. Want to change the shape ? Sure. Want to change the activation function ? Sure. Want to add a state function to certain elements ? Go ahead. Want to add random connections between various elements ? Don’t see why not… etc.
    I truly think that they are among the first of a "new" type of mathematical abstractions. They allow people that don't have the dozen+ years background of learning applied mathematics, to do applied mathematics.
    a
    w
    k
    • 4
    • 8
  • s

    shalabh

    12/26/2019, 7:41 PM
    In a social gathering, someone (a music/visual artist) asked me the following:
    When you see a working application, can you tell how the code is written and organized?
    What do you think?
    a
    d
    +2
    • 5
    • 11
  • p

    Paul Butler

    12/27/2019, 3:41 PM
    I'm intrigued by the idea of multiple syntaxes that can map to the same AST, such as used in Forest: https://github.com/forest-lang/forest-compiler#FAQ I'm curious if anyone has seen something like this where the syntax structure remains the same, but keywords are translated to different natural languages. As in Forest, a layer between the code repo and editor would parse the code in its original language and translate the AST into the user's language, and do the reverse on the commit to the repo. One would have to take a bit of care to ensure that there are not namespace collisions between keywords and other names, but otherwise it seems possible to do. I'm also curious if anyone has taught an English programming language to non-English students, and how much the language mismatch was a burden?
    m
    w
    +4
    • 7
    • 9
  • m

    Mariano Guerra

    12/27/2019, 7:34 PM
    If someone has an "elevator pitch" for their project I can add it as "project of the week", comment here or DM me to set it up 🙂
    i
    z
    • 3
    • 2
  • z

    Zubairq

    12/28/2019, 6:31 AM
    I am quite new to this Slack group, and trying to find out if anyone has a document or overview which lists all the projects here, a brief description and status of the project, the people involved, as that would make it very easy to navigate the group? Or is this something I should create a shared google doc and we can all update it in the group?
    👍 1
    s
    r
    +3
    • 6
    • 9
  • p

    Pezo - Zoltan Peto

    12/29/2019, 3:18 AM
    What
    ideal
    tools would you like to have in every project you work on? My list: • Graph db - I’m fed up with Relational dbs and Mongo like key value stores. (OpenCypher as query language would be really nice 😄 ) - offline-first support • Same language both for server and client (like typescript) • Static typing (I’d prefer Dependent Types like Idris, but the ecosystem is just not that mature) • Actor model, visualisation: like XState • Over The Air update support (for mobile apps) • Visual (Snapshot) Testing (like percy.io) • support for Property based testing & random tests
    e
    s
    g
    • 4
    • 3
  • z

    Zubairq

    12/29/2019, 5:38 AM
    @Pezo - Zoltan Peto My ideal project tools would be one where I don't know if I have any of those things in the list. My ideal tool would be something that would allow me to watch Netflix at the same time as building a system
    i
    s
    +2
    • 5
    • 13
Powered by Linen
Title
z

Zubairq

12/29/2019, 5:38 AM
@Pezo - Zoltan Peto My ideal project tools would be one where I don't know if I have any of those things in the list. My ideal tool would be something that would allow me to watch Netflix at the same time as building a system
i

Ivan Reese

12/29/2019, 6:06 AM
My ideal tool is something where the fun parts of building a system are foregrounded, and the not-fun parts are diminished, to the extent that I would rather build a system than watch Netflix. For an example of the plausibility of this: give me a polyphonic musical instrument, and I'd rather write a song than watch TV.
❤️ 6
z

Zubairq

12/29/2019, 6:23 AM
@Ivan Reese Yeah great point, I would love it to be so fun that I would rather build than watch Netflix at the same time. Maybe that says how bad the state of tooling is today, or it may say something about me not being able to focus on any task for more than a few minutes! 🙂
s

Stefan

12/29/2019, 8:50 AM
This is interesting. If you both had to describe “fun” more precisely — what makes it fun?
z

Zubairq

12/29/2019, 10:26 AM
@Stefan I guess one definition of Fun for me is that it doesn't feel monotonous (basically like a good video game), and making something useful at the same time (basically NOT like a video game)
🍰 1
i

Ivan Reese

12/29/2019, 5:47 PM
I think the definition of fun itself is self-evident. Determining what can be done to make something more fun.. that's interesting. The things that could make a text-based language fun are different from the things that'd make a data-viz tool fun, different from fun mobile app development. Sure, fun can be found in the problem domain — coding music in Tidal is probably always going to be more fun than coding a forgot password form, even if you're using basically identical tools — but that fun is coming from the music, not the coding. What would it take to make all coding more fun? I also look to video games. What does it take to make coding-like tasks fun when they're presented as a game? Here's just a few. • Carefully crafted problems that have a specific difficulty curve. • Joyful aesthetics, like subtle animations and sound effects and music and a narrative. • No pressure — you can stop whenever you want. • Artificial pressure — if you don't solve this puzzle quickly, the opposing team will win.
👍 3
What would it look like to make a FoC tool that knew enough about what you were trying to do that it could sort your tasks according to a difficulty curve? For example, when confronted with a handful of test failures, order them based on the difficulty of the needed fix. How about aesthetics? Hello, 3d visual programming tools with path traced rendering and depth of field. How do you avoid pressure? I'm a proponent of injecting our tools with an explicit politics. GNU and GPL is probably the easiest example, but I also see a political motivation behind Urbit and IPFS and federation. It's not inconceivable that one could design an FoC tool that resisted the kinds of usage that breed misery. Plus, you can do what Jason Fried and DHH have done, and create a culture around your tools that promotes a certain way of working. By the same token, you could build the tool to give the sort of feedback that encourages besting oneself — performance graphs across revisions, autocomplete-from-the-community where brevity or clarity or stability or performance are championed.
👍 3
s

Steve Dekorte

12/30/2019, 12:03 AM
@Stefan “This is interesting. If you both had to describe “fun” more precisely — what makes it fun?” It’s been said that the major motivations are: agency, mastery, and social connection. For me, fun is feeling agency - to be able to quickly move from intent to functional artifact. For those motivated by mastery, it may have more to do with feeling one has mastered a given development tool, even if that tool isn’t ideal wrt agency. Zubair’s Netflix suggestion makes me think that a social connection motivation might be involved.
z

Zubairq

12/30/2019, 4:26 AM
@Steve Dekorte My Netflix suggestion actually meant that I don't want social interaction at those times, as I want my brain off. I use Netflix as a way to cool the pressure that builds up while coding so that I can continue. Like the Steve Jobs quote “_TV turns_ your brain off, PCs turn your brain on.”
o

ogadaki

12/30/2019, 10:52 AM
Very interesting how the discussion is now focussing on fun! 🙂 I guess it is very subjective. For me, as the act of programming is a mix of building and problem solving, I have fun in doing this when it is a bit tricky (i.e. not boring) but not so much. And yes the parallel with game is excellent. Good games keep you want to solve/do/build stuff in it but not too difficult. And this frountier is different for each person. Hence the notion of level in games. I guess tools for programming activity should embrace this notion of level. It is in some way in the editor landscape: gedit, geany, vs code, vim (choose your favorite ones here). But mabe a well crafted tool has this kind of deifferent level mor integrated. Of course, this is very difficult to do it right as there is a great variety of how people percieve a task as easy/difficult.
Another one: what is defenitly no fun is accidental complexity. So at least, fun tools are those with no acc complexity and the ones that help you manage it well in what you are working on.
s

Stefan

12/30/2019, 12:09 PM
So many great thoughts on fun. When I asked I was hoping for the discussion to move towards learning, as the two examples seemed to be connected to (a) you know how to use it (assuming @Ivan Reese already knows how to play that polyphonic instrument) and (b) you know how to get somewhere (I don’t want to say result, because it’s not that goal-oriented, but whether or not you’re going for composing a new masterpiece you’d like it to sound good at least). There are countless videos about game development specifically for on-boarding, which is often bolted-on afterwards in the form of patronizing tutorials, but then Super Mario is used as the example that you can teach gameplay much better without explicit prompts and just by guiding players through the experience, gradually exposing them to new mechanics. I haven’t seen that done for tools yet that wasn’t either a condescending tutorial or an exploitation of “gamification” for retention. I wonder why we abstain from experiments with that in our field, although I can see various reasons why we do: (a) it’s hard to do well even in games and only few do it well, (b) there is something about not wanting tools to appear as a game; just appearing like a game turns some people off. Slightly related: I have tons of friends who “are not gamers” and “never play games” and you would be surprised how much time they spend on their smartphones matching gems or candy… I think we need to embrace gaming more, clearly everyone likes it, even if we’re culturally not supposed to after a certain age or whatever. The key to enabling people to do more interesting things with computers is to teach them how without them noticing because they’re having too much fun. Somehow so far only a dubious part of the Free-to-Play gaming industry has figured that part out but then weaponized it for retention and monetization instead. What if we “weaponized” it for teaching people how to use our tools?
o

ogadaki

12/30/2019, 4:53 PM
All this, and your hope for the discussion to move towards learning, make me think of a personnal example about fun in progressively use/learn a tool. It is about Vue.js. I have started to use it because a girl I know, when asked for Vue drawbacks answered me she can't find any. So I decided to give Vue a try. I first started to read its documentation which was very pleasant, there is a french translation, is very clear and reads like a novel. Things are introduced progressively with the right timing. And developping with it can also be very progressive. You don't have to have a global vision of everything to start creating nice things. I even started with an plain old index.html file. When you feel it, you introduce other concepts and everything fit nicely. So my experience in learning and creating with Vue is really fun. And I am pretty sure that the fun will continue with the incomming new composition API (I can't wait to start using it :-) ). And all this is not by accident. The community (and first of all Evan You) is very very commited in making the developpers and learners experience very smooth and progressive. They try a lot to remove any accidental complexity. For me, Vue is definetly a very inspiring example for building fun and engaging tools.
👍 2
z

Zubairq

12/31/2019, 5:07 AM
@ogadaki Yeah I agree with these comments on Vue. I was into React heavily and then one day I made a small Vue example on a web page, and it progressively gre from there. Same with AFrame for VR, it allows you to start easily. I guess any tool that people make has to make it easy to start building within minutes, without a huge learning curve, which is something I am guilty of myself!@
View count: 2