12 ms·
Bubble – Visual Programming
- ben174 9y agoTook me a while to dig down to finally get to see the IDE, here's a direct link: https://bubble.is/page?name=index&id=todomvcapp&tab=tabs-1 https://bubble.is/page?name=index&id=todomvcapp&tab=tabs-1 It's actually pretty impressive and seems mature.
- hacker_9 9y agoNo code required!.. unless you want need something that isn't a date picker or Google maps widget, then yeah you need to write code [0]. [0] https://manual.bubble.is/building-plugins/building-actions.html https://manual.bubble.is/building-plugins/building-actions.h...
- estraschnov 9y agoYes, that's the vision. But then other people can use the plugin without coding, so the work is only done once. Disclaimer: I'm the founder, but didn't initiate this thread. Happy to answer questions though.
- petra 9y agoBubble is such a great tool, and you really put a lot of attention to the details. I really enjoyed trying it. My question is: So one big strength of textual languages vs visual tools(and DSL's) is expressivity - visual languages are limited to their specific domains, while you can use, say, python to build complete systems. Do you see this distinction remaining ? or we'll have some way to build multi-domain systems visually ?
- estraschnov 9y agoThanks for the kind words :) Yes, this distinction will probably remain, but we're trying to push where we need to get back to textual languages. If you need to build a machine learning algorithm, I'm not sure visual tools will ever be the way to go (though i'd love to see this). But both ways work well together. In Bubble, you'd build your optimization algorithm as a plugin, and then you (and even better, others, non technical colleagues) will be able to use the action you've built visually. The Bubble interface becomes the common language between business, product people and coders.
- vvanders 9y agoThat's actually very close to how modern game engines with with large teams(substitute designers/artists for product/business) work. Very cool stuff, kudos.
- estraschnov 9y agoYes gaming is more advanced that general purposes applications for some reasons. Let's change that :)
- vvanders 9y agoYeah, I've tried it at a few shops and it tends to be a cultural problem more than a technical one. It's also really hard to build the right tools. It's very easy to sink 3-6mo into a tool that doesn't get a ton of usage because you either don't have partners on the other side who are invested or didn't solve the right problems. For it to work right you need a lot of factors to go just right. When it does it's pretty incredible but feels a bit like trying to catch lightning in bottle.
- Risord 9y agoI think if we want explore ways to connect these worlds we should do same as we are trying to do our architecture: separate view and logic. Most programming languages are quite messy if you think those as abstract model and therefore compilers won't have very good API (if any) for building application from non-textual inputs. On the other hand views should be much more data-oriented. For example user actions should be copy-pasteable, editable as data and therefore usable for automation. -Text? Easy "it has been since 60's". -Visual (button click, drag&drop etc.)? "IMPOSSIBLE!". I claim that it's just bad habit which started as "MVP"-syndrome, continued as "Typical user won't..."-syndrome and finally ended up to "This is what GUI is"-syndrome. Yea I think I may cut some corners but I cannot see any fundamental barriers here. Therefore I am currently researching this area and hopefully get something out at some point (or die tryin’).
- DonaldFisk 9y agoMany visual languages are limited to specific application types, but there are also general purpose ones.
- alrpal 9y agoCurious how many paying users you have.
- estraschnov 9y agoI won't be too specific, but in the thousands of apps, and enough to support a team of 6 people (we're entirely bootstrapped).
- brucephillips 9y agoIs there a bias toward a specific industry or application type among your paying users?
- estraschnov 9y agoNot really, as long as it’s a data driven app (and not a platform game...). About half of our paying users build startup-type, customer-facing products, while the other half is small businesses building internal management tools (like invoicing, custom CRM, etc).
- vinchuco 9y agoCan you reverse-bubble websites?
- estraschnov 9y agoWhat do you mean? Go from Bubble to code?
- vinchuco 9y agoWhen I wrote it, I was thinking along the lines of "hey, I like visual feature x in this website. It would be great to just tell bubble I want that". Just thinking out loud.
- hasenj 9y agoSo, visual basic?
- jlebrech 9y agothat's a plus, imagine the same but not being able to write code for what's missing.
- hehno 9y agoTo be honest, it just seems like another website builder, but with some API integration
- brucephillips 9y agoAnd DDL support, graphical programming support, plugin support, ...
- deleted 9y ago[deleted]
- apatheticonion 9y agoAnyone know of a decent programming flow chart system? With drag and drop ifs, etc. This is for educational purposes.
- oddlyaromatic 9y agoMaybe I'm way off but would Scratch or Node Red be the right kind of examples?
- mohapsat 9y agoScratch is awesome!
- julianz 9y agoAuthorware used to be good for teaching the basics in a flowchart format, but it looks like it's disappeared into Adobe now.
- DonaldFisk 9y agoYou could try DRAKON.
- p3scobar 9y agoBubble changes the way non-technical folks can build things! As a customer, I'd definitely recommend it to anyone looking to build an app or website quickly.
- olahalvorsen 9y agoThis is great! Does anyone know what the "onboarding system" is called? The one showing tips and videos as you go along, I'd like to use it in my own project
- estraschnov 9y agoThis is actually custom-built, as it's very closely integrated with our editor (i'm talking about the learn lessons with the arrow).
- olahalvorsen 9y agoThanks for the reply, wow you could sell it as a separate product, looks very impressive! I like the contextual videos and the fluent integration with the rest of the interface. Great work!
- masiulis 9y agoI think Bubble is great and we need more people experimenting with visual programming! We have been working on a visual tool[0] for ourselves and the development speed gains are incredible. Hopefully, there will be more non-text based programming environments. [0] https://github.com/UgnisSoftware/ugnis https://github.com/UgnisSoftware/ugnis
- keithnz 9y agohmmmm, "No Credit Card Required" you can sign in with Github! Just give us access to all your private repositories! Ummm, no. That's just rude.
- Nicksil 9y agoI noticed that as well before I ultimately backed out. > Public and private I've not developed with the GitHub API, so I don't know if that just comes with the type of scope they're requesting or what. Still, wonder why they're requesting such access?
- bpicolo 9y agoUnfortunately, there's no per-repo or per-org perms which is somewhat annoying. Enabling on a repo-by-repo basis would be insanely useful.
- estraschnov 9y agoThat's right. We need the permission to sync plugins code, and therefore have to ask for the whole set of permissions around repos :/
- skrebbel 9y agoCan't you ask to expand the permission once that becomes relevant? I imagine that people who just want to try bubble don't want to give you all their private code.
- ecesena 9y agoI see signup with email+password, or google, or github. Did I miss something? It seems perfectly legit, there are alternatives, and github seems much more appropriate than facebook here. Personally, I very much prefer people to ask me for a social, rather than storing my password.
- 9y ago
- WhitneyLand 9y agoProfessional programmers often scoff at these kinds of tools, a lot of time for good reason. However I believe that with the right approach such a system could also speed development for a lot of serious and complex development efforts. It would have to use standard pro level libraries and tools underneath, with the easy UI being essentially and abstraction over of subset of the functionality. This would allow it to retain great usability, but still with no limitations for advanced users. Of course this hasn’t really happened yet, but I think it’s because the right balance, architecture, and respect for both user experiences has not been applied. It would also involve leading and tightening some standards to allow things to work together more consistently. Remember how things were before package managers? Why couldn’t there be a better way to standardize scaffolding operations and configuration for example? I realize a lot of this seems to be pulling in two different directions, but so many of the pieces already exist, and so much of pro effort is wasted on grunt work tasks like getting things glued together that should be easier.
- avodonosov 9y agoHave you worked with Borland Delphi? Is it close to the ideal you described?
- estraschnov 9y agoDelphi has actually been an inspiration for the UX (i was a big user in 1996).
- avodonosov 9y agoWhat UX?
- avodonosov 9y agoAh, you are one of the creators. If Bubble is similar to Delphi, I wouldn't call it visual programming (can you develop IF statements, loops and functions visually?). A better name for Delphi kind of tools would be "Rapid Application Development Environment". And it's more convincing name than "visual programming" - I have never seen a successful visual programming environment.
- seanmcdirmid 9y agoThis seems like an idea that is tried again from time to time: direct manipulation form editor backed up with some high level graphical workflow or data flow language to express logic. I wish I could get some comparisons on previous visual systems so I could figure out what was new here, or is it a new domain being targeted?
- jdavis703 9y agoYou know, a lot of people criticize visual programming as not being powerful enough -- when you encounter some kind of edge case you then outgrow the tool. Instead the problem with these kind of systems are is that it requires structured, problem solving type thinking. Learning the syntax is the easiest part of programming. I see people struggling with tools like Google Calendar, physical security alarm systems and parking a vehicle in a tight location. They don't apply basic problem solving, and without developing that skillset these kinds of tools will continue to be useless for that demographic.
- brucephillips 9y agoIn general, yes, https://en.wikipedia.org/wiki/No_Silver_Bullet https://en.wikipedia.org/wiki/No_Silver_Bullet Though for simple tasks, syntax is the biggest blocker, and visual programming is preferable. See the success of IFTTT as an example.
- DonaldFisk 9y agoBrooks concluded that visual programming wouldn't speed up development by an order of magnitude, and he's right. But it has other advantages. There has to be a silver bullet though. I haven't seen a large system which couldn't be implemented in less than 10% of the code. Chuck Moore, the inventor of Forth, says 1%.
- petra 9y agoThere's a big trend of low-code,or no-code tools. Some of the reviews/reports do talk about 5x and sometimes 10x improvement. There are some tools(if you want i can look later) that you input math and you get fully optimized code for a variety of architectures, so it's kinda 1%.
- DonaldFisk 9y agoAm I right in assuming these are only able to handle specific tasks? What I've noticed applies in general, and is usually the result of programmers trying to be too clever, using frameworks, inappropriate use of object orientation, or not refactoring.
- maxxxxx 9y agoI have seen a lot of tools like this but they seem to fall apart as soon as some (mild) complexity is reached. Labview is a good example. Really easy to click together something simple but as soon as you have loops, conditionals or threading it gets really complex. VB or Delphi worked because they only had the UI through a UI builder but then you had regular code underneath. I think there would be room for something like Delphi or VB for web apps though. It's kind of interesting that after all these years text is till the best representation for software.
- meredydd 9y agoYou might want to check out https://anvil.works https://anvil.works Its a VB/Delphi style app builder for the web. It's got a visual UI builder, with Python code behind it (client and server, with RPC between them).
- maxxxxx 9y agoThis looks like it.
- DonaldFisk 9y ago> Really easy to click together something simple but as soon as you have loops, conditionals or threading it gets really complex. Which you're going to have in any non-trivial program. This is a problem specific to particular dataflow languages. I've solved it without adding complexity. Loops: http://web.onetel.com/~hibou/fmj/tutorials/Iteration.html http://web.onetel.com/~hibou/fmj/tutorials/Iteration.html Conditionals: http://web.onetel.com/~hibou/fmj/tutorials/Conditional.html http://web.onetel.com/~hibou/fmj/tutorials/Conditional.html Some non-trivial code: http://web.onetel.com/~hibou/fmj/tutorials/GregorianCalendar.html http://web.onetel.com/~hibou/fmj/tutorials/GregorianCalendar... MIMD programming is built into the language at its deepest level, so threads aren't an issue.
- aabajian 9y agoLabView is the classic example of graphical programming used in professional practice. It works well, but has a large learning curve. My first paid programming job was an undergraduate summer research project. I was tasked with re-writing a LabView function, a simple coefficient of variation - mean divided by standard deviation, in C++. LabView can call C++ DLLs. The resulting function was 5x faster and meant that our imaging of blood flow could be done in real-time vs. recorded and post-processed. FWIW, it took 10x as long to get the DLL call to work as it did to drag-and-drop the coefficient of variation box into the GUI. There are certainly rapid prototyping benefits to be had with higher-level languages. Nowadays I prototype in Python and rewrite line-by-line in C++ if I really need the speed. I think GUI programming languages might serve a similar purpose.
- mlevental 9y ago>line-by-line in c++ I don't understand how/why people do this? the languages are so different I can't imagine doing it - libraries, control structures, types! what exactly are you prototyping then? just the shape of the code?
- aabajian 9y agoYou use black-box unit tests developed against the Python code. You then write identical code in C++ that produces the same output (i.e. passes the unit tests). Then you apply optimizations/refactoring specific to C++. It is the latter - premature optimization - that is a pain in lower-level languages like C++, and which stops you from getting the correct result.
- mlevental 9y ago>You use black-box unit tests developed against the Python code. man that makes even less sense to me. do you have an example of code produced this way?
- dbcurtis 9y agoHave you considered Cython?
- kkotak 9y agoBret Victor has done a lot of work on visual and reactive programming - http://worrydream.com/ http://worrydream.com/
- estraschnov 9y agoYes, I've been following Bret's work with a lot of interest.
- pcunite 9y agoLet us not forget VNOS, and learn from them. http://drdobbs.com/vnos-the-visual-network-operating-system/184404891 http://drdobbs.com/vnos-the-visual-network-operating-system/...
- didibus 9y agoMax/Msp is the best Visual Programming environment I've ever used. Its often better then full text based alternatives for the domain it targets. I think a hybrid like that, where the visual aspect controls the order of the program steps, where as the steps are encapsulated and implemented in code can be pretty powerful. Not sure it would work for all domains though.
- DonaldFisk 9y agoProgramming involves producing algorithms, and that is difficult, no matter how you do it. You have to write, or (if your language is visual) draw code. People have tried making programming easy, beginning with COBOL. It doesn't work. There isn't any information about what kind of programming language Bubble is. Visual languages are usually either procedural (Drakon, Scratch), or dataflow (Prograph, LabVIEW, Max, Full Metal Jacket) or its variant flow-based programming. There have been a few attempts at functional ones too, I think. It's obvious a lot of work went into it, and there might be a few good user-interface ideas in Bubble, but it's hard to tell from the web site.
- sebringj 9y agoI just tried it. Tried to keep an open mind. I couldn't get the button to change the text, or rather, I didn't have the patience to keep trying to get the button click's action to modify the text value. The paradigm and mental load is shifted to gui boxes with entries and arrows to actions and more boxes. This is a wip at best. An AI you talk to just like a programmer is what is truly needed.
- everdev 9y ago"Always bet on text" https://graydon2.dreamwidth.org/193447.html https://graydon2.dreamwidth.org/193447.html
- manduz 9y agothis is a great tool i just started using the last two hours and i think i will spend the next few ones on it, i am loving the project, how can we support it financially other than the apparel shop?
- jlebrech 9y agoThis is maybe a bit too far away from technical people, but the ability to drag and drop components has been around since visual basic and delphi etc. we want the standard components we're all used to, panels, button, dividers, windows, menus, dropdowns, imageview, etc to be their to drop onto an app but also have the peace of mind that if a component doesn't exist that it's possible to create one. for example here are ides for react: https://nuclide.io/ https://nuclide.io/ http://reactide.io/ http://reactide.io/ https://www.decoide.org/ https://www.decoide.org/ I believe this is just a stop gap, there should and hopefully will be a multiplatform delphi of sorts in the future that will also target wasm/html/js/css to target wasm as a first class citizen we should make sure libraries such and xlib (because you can build gtk and qt with it)/win32/cocoa have clones/implementations for wasm for example
- lolive 9y agoI am stuck currently with microservices orchestration. Is there a known visual tool to manage such use cases? For example to debug scenario, (may be based on Kibana). Or define the steps, preconditions, of the workflow?