Are there any good open source smalltalk implementations? [closed] - macos

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Do you know any good smalltalk implementations which meet the following criteria:
are open source (and free)
are enterprise ready - I can do commercial apps into it
works on os x
I'm asking this because I heard a lot about smalltalk, and I want to learn it - just for fun. But it seems to be hard to find the right tools and books for this language.

I am happy developing commercial web applications on a Mac in Pharo. Cross-platform development is easy and painless. I work together with a Windows-based developer and we deploy on Ubuntu. There we use the commercial Gemstone system (OODB) in its free version. We use Monticello as a distributed version control system. I've taught a student the basics of smalltallk and Seaside with James Foster's tutorial. A more in-depth explanation is in the Seaside book
When creating domain models, Glamour is a fantastic toolkit to create browsers, allowing the navigation and visualization of the model. It is part of Moose, a software reengineering system, also based on Pharo.
There are of course also weaknesses: Pharo changes a lot. Track the changes that are going on on the issue tracker and the mailing list. Staying about a month behind the bleeding edge is about right for us. Integration with legacy systems is easiest with REST web services or files. Smalltalk tends to use a lot less XML (SOAP) than .NET and java. There is no good 64 bit support. There are 64 bit images, but they have not been tested enough and are known to have problems.

Pharo meets all your criteria. It is open source and free, it was forked from Squeak specially to be for professional development and because Squeak was actually born under the Apple umbrella, it supports OS X perfectly.

Squeak. As Janko mentioned, Squeak spawned Pharo. Since the fork, Squeak has undergone a number of significant changes and is (in my opinion at least) as enterprise-ready as Pharo.
(There is a large amount of cross-pollination between the Squeak and Pharo communities. They even share the same virtual machine.)

I forgot...fore even more books, check
http://stephane.ducasse.free.fr/FreeBooks.html
and for web development you can check
http://book.seaside.st/

Gnu smalltalk

I would go by Pharo. Check:
http://www.pharo-project.org/
http://pharobyexample.org/
http://book.pharo-project.org/

Pharo if your focus is web development only.
Squeak if you want more stuff to play with and don't care if you're a bit behind with the latest web development stuff using Seaside and don't mind if there are libraries that people haven't tested in a while.
Cobalt (based on squeak) or OpenQwaq if you want to have a robust 3D mutli-user distributed 3D world available.
Scratch if you want to have a kids-ready programming environment out of the box.
All of these are based off squeak.
You have several flavors of VM available with each of the above. Cog and CogMT are designed to be accelerated VMs that use a just in time compiler for extra speed.
There are also experimental GUIs, such as Cuis and there's a standalone VM called "SqueakNOS" to be used in place of a host OS such as Mac OS or Linux.
In a few months, there should be a massively scalable multi-core system available called SiliconSqueak that implements the Squeak VM in hardware.
I've no doubt missed a few things. Squeak is a research tool for many people in the computer world and some implement commercial products using it.

I do use #Pharo for commercial development.
Application space: dashboard and networking equipment.
Very solid tool, executes fast.
Now on Pharo 3.0.
Command line tools created using CommandLineHandlers.
Web apps with Seaside and fronted with Apache.
VMs monitored with monit.
CI with Jenkins.
All source Smalltalk code managed in git.
The best thing is the speed of development and ease of debugging.
Never had such a good experience. Coming from Java, PHP, and some C.

Related

Windows Programming Languages (GUI) that doesn't require installing any framework/dependency [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I use C#/VB.NET most of the time to write windows applications.
But this happens when my customers need an app that doesn't require a framework (e.g .Net 4) to be installed on destination system . So the exe file can run without installing any dependency.
I know about C/C++ but writing GUI applications in them is so hard.
I heard about D language, but it seems to be very fresh and there is no (not enough) documentation at all.
Also there is Delphi but it's so expensive.
Is there anything else out there ?
note: I prefer compiled languages over interpreted ones.
If cost is a factor, since you reject Delphi, how about FreePascal with the Lazarus IDE. It's just hit version 1.0 and is of a very high standard.
Yes.
Understand the point of the libraries (DLLs): to avoid you having to bundle the common functions/methods/classes into your application every time. With that in mind, I would ask why the requirement to not install libraries on the destination?
Is it disk space? Required effort? Fear/Paranoia? (Lack of) expertise?
I would look to address the root cause of this "requirement" rather than try to work around it.
There are ways to statically link whatever functions/methods/classes/etc. your code needs directly into your binary.
If you go away from .NET and wander into the wonderful world of Windows assembly programming (warning: near-vertical learning curve), you can write tiny, tiny apps (we're talking a few K) that require nothing external.
If you want a GUI compiler for Windows that uses no framework, then you want Visual Basic Version 6, which hasn't been updated since 1998.
If you want a web scripting language for Windows that uses no framework, then you want Classic ASP, which sadly hasn't been updated since 2000.
Classic ASP rocked. It was miles better than the .NET framework. Microsoft is run by idiots. Perl and PHP are just stepchildren of Classic ASP. Classic ASP was the last good development tool that Microsoft ever made. What kind of idiots would assume that an overbearing framework would be suitable for all software development? The .NET framework is an ugly, bloated circus of auto-generated code that pours ice down the pants of real developers.

Best way to manage projects [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
What is a best way to organize many software development projects, interaction with clients, project documentation, sources, emails, knowledge, time tracking, issue and features tracking, support for releases and versions etc. for a small company?
For me (and I believe for many others) it is obvious that it must be some sort of web-based solutions. It would be great if it could provide an interface for iPhone (if not, it is also OK).
Important thing: it must be hosted on our servers, so PHP + MySQL is the best platform so far.
I have found the following system to consider:
http://www.activecollab.com/ (but I didn't found issue tracking as well as support for releases and versions, so it is not the best match for software development company)
http://www.mantisbt.org/ (Great tool, but no project planing...)
http://www.twproject.com/ (didn't try yet, but it has very strange interface)
But none of them is a 100% solution for me.
It also should (but not must) support SCRUM
We have about 25 people in our team and about 50 from client side. At once we run about 3-7 projects (some in dev. phase, some in support).
So, my questions: does anybody knows any good web-based system that gives everything software development company needs? I believe this information will be useful for many of us.
I would recommend FogBugz
They have a very interesting (admittedly not everyone's cup of tea) scheduling system and is apparently supporting scrum.
Their support for release management is something i'm particularly fond of, but i should also say that i have very little experience of other similar systems.
Another feature that I like is the ability to link different e-mail accounts as well as pure HTML forms to different projects.
Oh, and it is not a MySQL/PHP solution.
Some of the features are:
Issue tracking
Project planning
Scheduling
Customer support
Wiki
References:
Scrum and Fogbugz / Fogbugz questions / FogBugz Knowledge Exchange
I think it really depends on your company size. I used activecollab for a while but it never really convinced me and then they made it commercial anyway. There is an open source fork of it called ProjectPier.
Even if it is not MySQL + PHP but Ruby On Rails Redmine convinced me the most from all tools I tried (and installing the ruby module into apache is a question of 5 minutes). It is simpel and yet has anything I need (including Eclipse Mylyn, SCM integration, E-Mail Notification and time tracking). With a little RoR knowledge it is easily customizable, too.
The most popular Open Source sollution is probably Trac. It is written in Python, so it is not a PHP either.
But maybe it makes sense to consider a non PHP sollution. I didn't find any PHP open source tool that had the functionality and simplicity of Redmine or Trac. If you don't mind a hosted sollution Basecamp is probably the first address to turn to (never tried it though).
Trac with Agilo plugin might be a good option.
Here is link for Trac pluigns, some category are:
Code Documentation
User feedback and discussions
For another pespective - having used many of the above solutions, and liking them very much for bug tracking, wiki documentation and tracking information - I tend to move towards keeping much of my project "meta-data" (summary information pulling together wiki, bugs, schedules, communication) in spreadsheets now.
For those now climbing onto the top rope of the ring preparing for a takedown, here's why... I come from a programming background, and one of the best books I read early in my career was The Pragmatic Programmer. One of the tenets they preach is finding a fundamental editor that you like, and get good with it (for various Very Good Reasons). After trying (frustratingly) to port and adapt my PM/Dev Management approach multiple times to multiple systems, I've extrapolated that Pragmatic tooling philosophy to the product/project management world I now inhabit. To stretch the metaphor, my editor is now Excel.
I can't guarantee that for any company I work with, they have "Software Project Management xyz" or "Bug Tracking System abc" with the proper plugins - but I can be darn well sure they have Excel or some variant available. I know if I get ninja-like with that tool, I can continue to use it - and focus on the project, not the tools.
This spreadsheet approach comes with some caveats:
Excel done poorly can suck. We've all seen that. Watch for bloat and stupidity.
Keep the bugs in the bug tracking system, the wiki stuff in the wiki. The spreadsheet is meant to pull this stuff together, not replace it.
Keep it readable. Don't stuff everything in just because you can. Summary sheets are good.
Try to standardize your templates and macros meaningfully for tasks and information, to maximize reuse over time and projects. Just like good programming.
Back it up - use a document management system if you can. This approach isn't in the cloud or hosted centrally by default, so be aware of that.
Have you tried Assembla? They've recently released a new product called Portfolio which is great if you have to manage multiple projects + you get free clients! :)
You might like to consider http://targetprocess.com/ We use that in my current job and it works pretty well, from a developer point of view. I'm unsure as to whether it supports your installation requirements, however.

Best way to create GOOD LOOKING, multi-platform, desktop Ruby apps? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I've got an idea for an idiotically simple application, one that converts HAML and SASS into HTML & CSS files for the user by watching directory changes (like Compass). Almost all the components are already available in the community, I just need to figure out what to use for the front-end.
The catch:
It must be:
a standalone app (i.e. users must NOT be required to install Ruby or HAML),
that looks good,
and is available in several platforms (linux, mac, windows).
So far I know very little about:
RubyScript2Exe: which packages ruby applications for you
Adobe AIR: desktop-style web-development...but is it easy to integrate with Ruby?
Adobe Flex: Is this only for web-based development?
Java /jRudy: (I get scared just thinking about it)
FXRuby: a ruby GUI toolkit which is unfortunately too old-fashioned (read 'ugly') to attract the audience I'm looking to target (designers and HTML developers....no, I'm not planning to charge for it, just want to make an attractive app)
Shoes: Another ruby-based GUI toolkit that may or may not suffice...is there a GUI
builder for this?
Of course, other options are more than welcome.
If you provide an answer, please be kind enough to also leave a link to a good starter tutorial that integrates Ruby and your technology of choice?
I recently had to decide on a Windowed front end for a simple app. I looked into FXRuby, TKRuby, Shoes and WXRuby.
Shoes was the only one that helped me make my app. The rest were (probably) more powerful but the cost in complexity (compared to Shoes) seemed vast. I had never had to sit down and work with a big ugly window API before and didn't want to learn one just to achieve my simple report generator. It wasn't clear how to take code for these API's and reliably generate an executable. Shoes' built in packager works nicely for me.
The one problem I had with Shoes was the trouble getting documentation. I eventually learned that running shoes -m launches a shoes app which acts as a very useful manual. The official tutorial is a worthwhile (and short) read. That's located here.
Shoes served me well and will be my first port of call on any simple utility i choose to make in the future.
have you had a look at titanium desktop? might be what your looking for
Oh, hotness flows from my pores about this question. I believe the future of the internet lies over thisaway Cappuccino. I know it sounds like a plug but I swear, I'm just impressed as hell by 280slides and Atlas. A web framework that's built using Cocoa's interface builder and can be compiled for both Cocoa natively as well as a kickass web page by a simple drop-down box? Hot hot hot. Boiling maybe?
Limelight is another alternative. It's JRuby based and available as a binary install for Windows and OSX, or as gem for any platform. There is a tutorial and screencast linked on the Limelight homepage.
I haven't used it, but thought it was worth a mention (I did download for Windows, but couldn't get it to launch - I suspect my work proxy is causing problems).
My vote would be for Shoes as well.

XUL runner as GUI framework for my application,what am i missing here? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
recently i was introduce to the mozilla XUL runner as framework for front line GUI
this seems to be idial framework to me ( none GUI person ) based on xul and js for events
and gives me the possibility to use c++ as back end ( xpcom ) . its seams to good to be perfect .
my question is for the guys that have expireance in this frame work and can give me some points on the limitations of this frame work.
and also can i base commercial software on XULrunner binary ? some one knows about this license matter?
XUL is just part of a larger "Mozilla Application Framework". There's a lot of conceptual stuff to learn to get the most out this superb x-paltform development environment. Like the previous poster said, good documentation is hard to comb by.
I suggest you read McFarlane's book, there's an online version here ...
http://mb.eschew.org/
It gives a very thorough treatment -- so you can code feeling like you understand the platform rather than like you're accumulating hacks from the net. Another thing you can do is download well-written open-source Mozilla-based applications like Komodo Edit and Songbird, then browse around their chrome directories. You'll save yourself a lot of time by checking out XUL experts at work.
That being said, one major limitation I've come across concering comercial development is that the design of XUL requires you to write alot of your client code in JavaScript. This means that your customers (and competitors) will end up with a lot of your source-code. The obvious way around this is to code the "core" propriatory stuff code using another language and bind it to JS through XPCOM. The other method I've heard of (which I'm yet to try) is to ompile the JS into byte-code using mozilla's JSXDRAPI. Firefox itself does this internally to cache XUL/JS files. I'm yet to come across somebody who has gotten xulrunner to recognise compiled .JSC files though.
Edmond Begumisa.
I think the hard part is that you have compile binaries for every platform you want to support. That's pretty nasty limitation right there. And yes the Mozilla license is pretty liberal, it's just fine for commercial purposes, here's the license and here's an annotated guide. Here I like this overview.
XUL is great.
One downside is that it is not promoted as a desktop application development framework. So tools support is worse than Microsoft's, not everything is documented, it doesn't have components to do everything.
If you're going to do serious development with XUL, be prepared to have to learn the framework, including its implementation details. Basically, if you're using components that Firefox doesn't actively use, you will have issues you'll need to figure out on your own.
The framework being open-source and liberally licensed allows you to patch it and use a patched runtime in your application.

Software for managing medium sized projects [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
So, at my current job we're usually 1-3 developers, 1-2 art directors and 1 project manager on each project, with the smallest ones just being one of each and the larger ones being three developers and two art directors.
I'm looking for a software, combination of softwares or some type of service that will allow us to manage our projects individually, it's important that we're able to manage several projects at once within one system/piece of software (without going through a too complicated setup process for each project) since we usually have 2-3 ongoing projects in parallel.
We need to be able to integrate with SVN, Track bugs/features/request, Put up milestones and some type of agile management a´la SCRUM would be nice.
Preferably it should be able to run on Windows (without to much hassle, ever tried to put up Apache+Python+Svn+Trac on the same Windows 2003 server and get them all to run together? not fun.) since we mostly do .NET development and most of our servers run Windows 2003.
Since you seem to have a maximum of six people working in a single room - I'd give serious consideration to not using software at all.
A whiteboard & cork board for each project, plus a whole lot of index cards / stickies can go a long, long way towards meeting the project management needs of one or two small projects.
(Failing that - I've found basecamp a fairly lightweight tool for small projects - although it doesn't do any sort of source control integration. I've also heard good things about the latest FogBugz - but I've had such bad personal experiences of earlier versions I've not tried it yet myself)
http://www.project-open.org/ covers your requirements and is available for Windows. However it is targeted at larger organizations (>20 employees), so that you might find it overkill for a group of 6.
I personally use BaseCamp for my company and have had great luck with it!
Edit oops, I didn't notice the SVN requirement, BaseCamp can help with the other stuff.
You might want to try out Mantis (www.mantisbt.org). It is a little cumbersome at first, but with a little bit of customization, it will work for you. It has SVN integration, and a bunch of other stuff which I haven't used yet... :|... such as Mobile support, Wiki support, etc.
And it's OSS (Open Source Software). Written in PHP, works with MySQL, or PostgreSQL. Just check it out, it's good.
http://www.mantisbt.org/
Atlassian's Jira Studio sounds like exactly what you need. It's hosted, so there's nothing to install.
If you want something that is quick and easy to work with that integrates well with Windows I would suggest Microsoft Office Groove. I have been using it on my current project and it also easily allows you to start new projects and add members.
It is not the best solution in the world, but it is included with Office '07 and it has tools to help with project management, bug reporting, calendar, meeting summaries, etc.
The one major problem I have found with it is that version control is not included by default. From what I understand you have to setup a SharePoint server to have version control in Groove, but I have not done this yet and have been hoping that my backups will work fine.
+1 for starting out with a whiteboard, stickies and whatever other office supplies you can think of. Being able to visualize the state of your project in a big visible wall can be really useful, more so than software-based tracking, IMHO.
You need to make sure the team is committed to keeping it up-to-date, though.

Resources