Doing serious work is demanding.
But so is serious work in any environment.
127 karma · joined March 25, 2012
Doing serious work is demanding.
But so is serious work in any environment.
And saying that VA or VW give a better user experience when coding vs Pharo, I beg to differ.
Iceberg is breaking new ground compared o Kraken/SourceTree etc.
Pharo took the risk of integrating git support in the tools.
It takes a few iterations.
So what? Either one is a user or one is inventing new stuff. When was it you wrote a full wrapper for libgit? And made it available to any app? Yes, any Pharo app now has the ability to use libgit features. Awesome and opening quite some doors.
And I actually find things like Spotter, Code Rewriter, GTInspector and Calypso pretty neat.
IntelliJ is not simpler and is closed source. It is neat, true. We even use its icons in Pharo.
Very stable. Quite powerful.
And it was/is a pleasure to work work with it.
One has to invest time and effort to master it. I would say that this is best suited to people who actually know what they are doing. Syntax is easy but frameworks are very advanced. So, do not go there without support.
I see comments that are not that kind to Pharo. I do to care to be honest. I do not think that Pharo is for the masses.
It has imperfections but nothing is at the core. And things are moving forward very well.
As a Pharo consortium member I vote with cash and usage.
It should be used more...
So is is good for doing some web application dealing with lots of devices.
Have a Jira client for doing lots of Jira automation using the REST API, along with a bunch of goodies etc. Pharo was quite practical to deal with that.
Am finishing up an XMPP client, and writing callbacks for dealing with XEPs etc is a dream in a live environment like Pharo. Expect more there soon.
Compared to other things I did with say Java or .NET, they all take longer and are more convoluted. I used to be a Java full time dev/tech lead/architect for years.
I am still doing Hadoop stuff but it all feels like there is always an annoying ton of accidental complexity in the Java/.Net camp.
Check http://pharo.org/success/Quuve for a rationale about picking Pharo instead of Python.
I do not feel stuck but have a few tricks: https://github.com/Pharophile/ExternalTools
(and for the save thing: https://github.com/Pharophile/HOImageSaver)
I like being able to add new features to my own dev environment the way I want. Like with https://github.com/Pharophile/TilingWindowManager
Try that with other tooling. A plugin or two, yeah, but hacking your own development environment from the inside out? That's really awesome I say.
Maybe they are flying under the radar.
Yes, there are some slick apps being done, with no need for a legion to deliver a sizeable piece of functionality.
Pharo forked from Squeak because it wanted to be a vehicle to deliver business value for real and not just be a research ground. Version 6 is a significant milestone in that direction. Iceberg (Git tool) was funded by the consortium. http://consortium.pharo.org/ Check the industrial members, this is no small fish.
I guess that we are on this trajectory: https://www.joelonsoftware.com/2001/07/21/good-software-take...
Deploying is easy, it is as any executable with some dlls and resources.
I deploy web apps on Azure with Windows 2012 R2 server and run them with NSSM so that they are nice services.
Otherwise, I run them on Linux with monit or supervisord.
As for scaling, well, you can run a bunch of running VMs with a load balancer in front.
An option is to use GsDevToolkit because Gemstone can run Pharo code and scale quite far.
A lot of apps do not need the scaling actually. So, 4 or 5 VM instances can really go a long way.
Now, why is it "better"? It is not because "trust me". It is because it makes code much more malleable. You need to let go of coding in files and of the need to scroll through code page after page. One needs to think of the code as a repository. Well the kind of thing tools like Jetbrains provides. When they do index your code, they basically build a Smalltalk image structure without the liveliness of it. So, the thing that makes me find it better is that when I got a bug (not a "crash"), a debugger pops out and I can inspect all of the state, maybe change code here and there (because I realized how stupid I was to code things that way 10 minutes ago), go back a frame in my debugger and continue the run. Without having had to stop anything, or restart the program. If I save my image before a run, I can always open it back like I would with a VMWare snapshot. That is quite great. After a while it reduces the time to code by a significant factor. Agreed it is another way to code. And ideed you'll know when you will have tried it. But it is hard to do all of that by oneself without seein g other Smalltalkers coding for real.
Now, for the files metaphor, I plan to have a fuse module at one point so that one can get into the image and see the contents as files, like one is looking into /proc or /dev etc. Then one can use Vim or whatever (I am a heavy tmux and vim user, so I feel your pain when it comes to the keybindings needs - but the current pain is worth the rewards). It took me a couple years to become proficient with Pharo and there is more to discover in that system for years to come. Because Pharo is a system and not a build system. You need to understand the system in which your code lives. This is very different from creating a piece of code from A to Z, compiling it and running it somewhat standalone or within, say, Tomcat or some similar device.
Also you shouldn't lose your work in Pharo because of the "Recover Lost Changes" tool that exists and allows one to grab the code back. Epicea brings this to a whole new level.
Hope this makes some of the possibilities a tad clearer.
e.g. Roassal + GTInspector + PetitParser can do a ton. Coupled with Zinc (HTTP Client + Server) and XMLPullParser, data can be brought in easily.
One key thing here is that there is much less accidental complexity that on other platforms when coding.
The continuum between coding/running/debugging/understanding is really sweet. It is more of an experience of making progress in much less time than on other platforms.
I have been coding on quite a number of other stacks but Pharo is really giving more to my soul, so to speak.
Also, the whole thing is MIT and no big corp owns any of it. So, we shape our own future. The community is smaller but really inspiring and it all made me a much better dev.
And it makes my thinking cleaner. Not a small feat.
...closer yes. As in an erzatz of coffee is closer to coffee than say, beer.
Enterprise features are getting added. With UnifiedFFI, it now easier to bind to C libraries, so, expect more.
I am looking into providing Kerberos support etc through it. Stay tuned.