Replacement for IDE? #5865
Replies: 1 comment
-
Posted at 2017-12-06 by Wilberforce There is the native version at the bottom of the page: https://www.espruino.com/Web+IDE Here is a pre-built installl for windows. Posted at 2017-12-06 by user83866 Thanks. Looks like the NPM based install would be most practical for OSX. Posted at 2017-12-06 by @gfwilliams I'll put an installer for a MacOS and Linux app on the website tomorrow. Google gave app owners ZERO warning of this, so there's a bit of a delay I'm afraid. If you have node and xcode then an npm install could be fine, but because of native modules the install can still be a pain. NW.js is definitely the easiest path at the moment, but I'll package it up to make it easier. Posted at 2017-12-06 by user83866 Thanks Gordon! No rush here, I just saw the news item and went, "hang on, there's one app I definitely need". Once again, great product. Thank you so much! Posted at 2017-12-07 by @gfwilliams Was the article you saw this one? https://arstechnica.com/gadgets/2017/12/google-shuts-down-the-apps-section-of-the-chrome-web-store/ Interestingly, while the apps section is shut down, you can still reach the Espruino IDE using its URL (linked from the getting started page - https://chrome.google.com/webstore/detail/espruino-web-ide/bleoifhkdalbjfbobjackfdifdneehpo) so it's not quite as serious as I had imagined - yet. The problem I now have is that Google will almost certainly remove the I'm considering creating a native websocket-based server app instead - it'd be substantially smaller (Maybe 500 kB vs. 60MB for NW.js or Electron), and would finally mean I'm not wholly dependent on Chrome (it should work with Safari or Edge too). I could move everything towards using Does anyone have any strong concerns/thoughts about it? Right now it's my preference because I don't want to have to revisit this in 6 months - and building native modules for NW.js or Electron is way harder than just building a C++ app. Posted at 2017-12-07 by opichals From what I read from Google is that they are trying to push the browser standards themselves so that no Google Chrome specific APIs should be needed. They have been speaking about it for over a year now (see https://blog.chromium.org/2016/08/from-chrome-apps-to-web.html). From that it appears that the espruino.com/ide direction is future-proof. @gfwilliams What exactly is there in the IDE that doesn't work in a browser? The terminal communication? What else is there that you would need the native server app you are writing about for? Posted at 2017-12-07 by @gfwilliams Yes, it's a reasonable aim - the problem is they haven't provided equivalent functionality outside of the chrome web apps.
There might be a few more that I'm missing :( While I could use the 'native messaging API', it's another chrome specific thing (although Firefox does implement it too) so I wouldn't be surprised if it disappears in a year or two. From that point of view a local WebSocket based server seems easier, it's just one more annoying hoop users have to jump through. Posted at 2017-12-07 by Frida 100.00 USD is on the way. Posted at 2017-12-07 by @gfwilliams Wow, thanks! I'm working on the WebSocket server now and it's actually looking really promising - I'm using Qt and everything's slotting together really well. I have it working for Serial right now, and Bluetooth LE support should happen by the end of the day - and with any luck that'll be for all platforms. Posted at 2017-12-07 by @gfwilliams Woo! Bluetooth LE support is now working - so hopefully tomorrow I'll do a bit more tweaking, will modify the Web IDE website to use it, get an installer done and we'll be sorted! Posted at 2017-12-07 by tbd any chance to not be dependent on Qt ? Posted at 2017-12-08 by @gfwilliams
No. Not unless you want to write and debug platform specific TCP/IP, Bluetooth LE and Serial interface code for Windows, Mac OS and Linux - plus installers. What's the issue with Qt? Posted at 2017-12-08 by tbd I am not fond of multi platform frameworks – the UI reimplementation looks out of place, bloated and you still have to fiddle with each platform quirks. But I will wait for a beta and provide more concise feedback then. Posted at 2017-12-08 by @gfwilliams The whole point of this is that there is a completely minimal UI - the actual Web IDE will run inside the browser. I'm far more concerned with making something that reliably and safely allows people to use Espruino boards with a browser of their choice. The best kind of feedback would be in the form of a pull request. It's open source, so if you don't like the look of it then you're welcome to try and improve on it. Posted at 2017-12-08 by opichals @gfwilliams The fact that we can start working with Espruino with just a browser is a killer feature IMO. From the link provided at https://developer.chrome.com/apps/api_index it appears that the easiest migration path could just be to build an Chrome Extension (instead of Chrome App) as described at https://developers.chrome.com/apps/migration. The extension APIs are here to stay I think. But other stuff, like the USB access might need to get migrated to their web equivalents. Not sure about the native installer.... at least the default use-cases for the Espruino boards should IMO just work directly from the IDE website for easy starters. For more I would perhaps think about doing plugin for stuff like https://code.visualstudio.com/ or https://atom.io/ where the binary is maintained by the community already and it is a matter of installing a plugin (both could be based on Node.js infrastructure). Posted at 2017-12-08 by @gfwilliams
I know - but sadly there's no way around it (apart from via Puck.js, and perhaps at some point the WiFi-connected devices). Extensions won't work as they can't use the
This just adds more pain. I don't know if you've tried to install the Web IDE with node.js from GitHub, but it's a nightmare. For instance if you have to build the native modules for serialport, that's a 15GB download and installation of Visual Studio tools so you have a C compiler. It's not a big deal for a Node.js developer that's already done it, but it's hardly 'plug and play' for anyone else. Having the websocket server actually opens the door to having proper plugins for other Node.js apps though. I'll package the executables up into a Node.js module so there should finally be a plug & play Node.js system that doesn't require compilation if you have a non-standard node.js version. Posted at 2017-12-08 by @allObjects @opichals, I usually keep 'things' separate, but
comes close to be seconded with an Amen. No matter modern thinking, the path is NOT the goal here: The tooling is not what I want be be bothered with, and Espruino Eco System really helps with focusing on what you want to do: enjoy MCs, explore IoT, and then making things... Posted at 2017-12-08 by opichals @gfwilliams you are right, I am biased in that I already have the native node.js module requirements setup so I didn't see that. Wouldn't WebUSB usable in the browser app (Chrome only too https://caniuse.com/#search=USB, with future uncertain it looks like)? Posted at 2017-12-08 by @gfwilliams I was really hopeful about WebUSB, but it won't communicate with 'normal' USB serial devices - you need to put special firmware on them first... so then you still need something native to update the firmware so it'll work with the browser! Also Google will probably kill it soon anyway :) Everything is up here now: https://github.com/espruino/EspruinoHost If you install the Qt dev tools and compile and run that, then go to It works for me on Linux, but so far I've only got it working on Mac and Windows with secure websockets disabled (which you have to do by tweaking the code) - but I believe the steps to fix that aren't too hard. So then it's just a matter of getting pre-built software and installers :) Posted at 2017-12-13 by @gfwilliams There are now builds available for Windows, Linux, and Mac OS - and instructions here: https://github.com/espruino/EspruinoHost/blob/master/README.md If anyone wants to give this a try (with USB or BLE devices) I'd be really interested to hear how you get on! Unfortunately it's not 100% plug and play because you need to use HTTPS, which requires that you install a trusted certificate for your PC. However this would appear to be something that can be done automatically by the installer in most cases. Posted at 2017-12-13 by tbd LATER EDIT: quick fix to make it working on OSX. steps:
quick feedback:
Posted at 2017-12-13 by @gfwilliams Great! glad it's going! Is it possible to copy those libs into the app package itself? I might just stick them on GitHub if so. To be honest the items popping around has been an issue in all Web IDEs. It should settle down once everything has been discovered? Also, you mention duplicates? What of? USB, or Bluetooth? With the ID, I should just crop it down or something. For some reason MacOS doesn't let you access the device's MAC address, so the ID shown there is effectively useless. What USB devices do you see? I don't see that many on my Mac - perhaps it could be filtered down though. Posted at 2017-12-13 by tbd
Posted at 2017-12-13 by @gfwilliams Ok, thanks - I'll see about filtering them out. Annoying about the frameworks - I think it is possible to statically link, but that legally Qt was lots of money to let you do that. Posted at 2018-02-05 by SergeP What do you think about IDE on Android as well? Now I have not found a way to start it directly on Android. While some Chromium-based browsers say they support Crome Apps, I see an error if I try to install Espruino Web IDE. IMHO Android support will be even more actual in future. Posted at 2018-02-05 by @gfwilliams For Bluetooth LE devices, it already works just by visiting https://www.espruino.com/ide on Chrome and a recent browser. USB is more difficult since I don't believe the browsers expose that. It'd require a separate app to connect USB - but nothing stops you running an IDE server on a computer that has Puck.js connected, and then connecting to that over the network. Do you have an example of an Android device that you might seriously consider developing on though? I'm struggling to think of any proper consumer devices that even have keyboards Posted at 2018-02-05 by SergeP I have tried to program ESP8266-based clock using Android TV-box with HDMI display, USB keyboard and mouse - my children often use it as yet another computer if all normal computers are in use. The TV-box has powerful processor, big memory and storage. Now I am going to use Espruino WebIDE in Linux VM on the TV-box, as workaround. Posted at 2018-02-06 by @gfwilliams Ok, so you're programming over TCP/IP rather than USB? I think that's quite a special case - however if Espruino supported Telnet over WebSockets (which could be done with a bit of JS code) you could just go to the IDE as a website - no native apps or anything. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Posted at 2017-12-06 by user83866
Google has deprecated Chrome Web Apps like the IDE and you can now no longer install them into your browser. In early 2018 they will be removed entirely.
Is there going to be a replacement for the IDE or is the terminal the route of choice now?
Beta Was this translation helpful? Give feedback.
All reactions