We use over 130 jars (Spring,...) and we use them from both Clojure and
some Java components. We are replacing with Clojure code
the Java high level components inherited from our product V1.0.
"Enterprise" programming is restricted to Java APIs however
we share data between Java, Clojure and Ruby transparently
through YAML and messaging.
Cobol/Fortran does not support maps as far as I can remember so
adding Cobol/Fortran components in our product would be a challenge :))))))
If Clojure was another "better" LISP without any access to
Java that would restrict its utility severely.
To us it would not had any sex appeal at all without Java access.
It was a major factor in our decision to use Clojure even
V1.0 is not finalized yet an go live with it.
We needed a fast delivery approach and Clojure allowed us to reuse
Java components with minimal changes while allowing us to code
complex logic much more faster in Clojure.
For us Clojure = less useless code lines = fast delivery
= less test headaches = major success :))))
Luc
If you write a new software product and
you are concerned with deadlines and speed in general, Java is not
the way to go anymore considering the pile of code you need to do
anything significant these days. More code = more people = inefficiencies.
I know some business where HR and IT managers come back with this mantra
that they can find Java and .Net coders, anything else is too risky or
too scarce on the market.
It reminds the time when you could not get fired when buying IBM mainframes.
Many HR departments do not understand anything about
software development in general and the profile of individuals needed.
They go for the "standard" available bodies with a single fit all projects
skill set and their batteries of psychological tests.
That explains a lot why productivity is low on most projects.
The landscape will change when HR changes (and managers)...
seeking intelligence and initiative instead of a single static fit.
(looks like StarTrek quest...)
The day they will understand that software development is not
a Taylor assembly line (less the efficiency), the situation will improve.
You cannot get more from people that what you are asking for...
I am not generally optimistic about the state of things in the software
industry but we need to bring in tools that are more accessible to the
masses. Clojure is one if you compared it to CL...
Luc
> Is it fair to say that Clojure shines in algorithmic processing,
> string processing, concurrency management, but that there are
> better choices in other areas:
I'd say that Clojure is probably suited for anything that the JVM is
suited for. Its Lisp nature makes it much more flexible than
"ordinary" languages, and there seem to be few limits to what it can
do with the JVM, considering that it is even possible to generate low-
level maths primitives.
As for what JVM languages are not good for in general, there is the
obvious domain of systems-level programming, and there are other
domains such as number crunching, where there is a severe lack of
good libraries in the Java world. Real-time programming tasks may
also be difficult, considering that garbage collection can introduce
a delay at any time, but I am not really competent to talk about this.
Konrad.
> As for what JVM languages are not good for in general, there is the
> obvious domain of systems-level programming, and there are other
> domains such as number crunching, where there is a severe lack of
> good libraries in the Java world.
The only other thing I can think of is short-lived command-line tools
that need subsecond launch times.
-Phil
Am 06.03.2009 um 19:21 schrieb Phil Hagelberg:
> The only other thing I can think of is short-lived command-line tools
> that need subsecond launch times.
Even this can be addressed via Nailgun as I use
it now for dynamic VimClojure (aka Gorilla). A
server runs in the background and invoking the
cli tool just talks to the server, taking care of startup
times. Not perfect, but for certain uses (eg. making
Clojure with Vim more fun) it is sufficient. :)
Sincerely
Meikel
-- Luc Préfontaine Off.:(514) 993-0320 Fax.:(514) 993-0325 Armageddon was yesterday, today we have a real problem... |
> I work with Ubuntu and all my frequently used tools are copied to RAM (/tmpfs) at
> boot time. My Java environment is there, Clojure, Eclipse, frequently used librairies...
> On top of that there's a daemon running to spot my frequently accessed files and serve
> them from RAM transparently.
>
> It takes me less than 1.3 secs to get the REPL prompt.
That's great for a REPL, but if it took me that long to get (for
example) "git diff" to return, it would be *really* annoying.
If it's a tool you use occasionally, keeping a server running all the
time may not be an wise solution.
-Phil
-- Luc Préfontaine Off.:(514) 993-0320 |
> I'm not from the software engineers field, but how difficult is it for
> some non-lisp, but java-savvy software writer to pick up a 600-line
> clojure program and learn to understand it?
I suspect it has more to do with people thinking they can't do it than
any actual lack of ability to comprehend. Many people are intimidated by
new ideas and think to themselves, "I'm a Java programmer. I shouldn't
have to learn a new language." Other people would see it as an
opportunity rather than a burden, even if they are otherwise both
equally capable programmers, the second person will be able to pull it
off. But unfortunately this kind of person is much rarer.
> I mean, everyone in this forum managed to learn clojure to some degree
> without too much trouble.. including me.
Membership to this group is _very_ self-selecting; you can't expect
things that are true here to be true across the board.
-Phil
I expect membership will increase once Stu's book is released. It will
give people a much more structured way to get familiar with the
language.
- You aren't going to find a job in your favorite city using your favorite language in your favorite domain. Decide what you value the most and go from there.
Also, how do you think this increase in required effort grows? What if we are talking about a +10.000-line Clojure program? Now add schedule pressure, deadlines and the cost of missed oppotunities and you will find that many companies sees the introduction of a new programming language - especially if it is uncontrolled or happens without their knowledge - as a significant risk.