I agree with markokocic: Emacs is brilliant. I tested many editors but always returned to Emacs. In the beginning Emacs is a pain to learn but once you get it it's indispensable.
136 karma · joined September 12, 2011
I agree with markokocic: Emacs is brilliant. I tested many editors but always returned to Emacs. In the beginning Emacs is a pain to learn but once you get it it's indispensable.
ACK. I know many languages, and my advice after using C++ for several years is: Don't dare try to do everything in C++. Use C++ only when it is absolutely necessary.
Just compare this C++ code
http://shootout.alioth.debian.org/u32/program.php?test=regex...
with this equivalent Javascript code to understand immediately what I mean:
http://shootout.alioth.debian.org/u32/benchmark.php?test=reg...
It's funny that this V8 code runs even 4.5 times faster (!) than C++ :)
http://shootout.alioth.debian.org/u32/performance.php?test=r...
Disapointed because the author's link to the benchmark website lead me to the wrong impression that Lua would be almost 30 times slower than Java 7. Then I googled around and discovered the awesome LuaJit which seems to be able to compete even with C++ in performance.
What I really like is Lua's code density (see samples in the Shootout's benchmarks). Very impressive!
http://shootout.alioth.debian.org/u32/benchmark.php?test=all...
As an old LISPer and Schemer I would like to know if Lua Macros are really as expressive and powerful as Lisp macros. Some people claim this but I am not convinced (I would like to be convinced). The expressive power may be theoretically equivalent but this is also true for C and Assembler :-) The question is: Are Lua macros as easy to handle as Lisp and Scheme macros?
http://stackoverflow.com/questions/323346/what-can-lisp-do-t...
No I meant the story about the hackers. No doubt about it that the nations could (and would) blast their satellites out of space. I wonder how these hackers can be so stupid to even think about such a crazy idea.
My dream Pad would support "dual view" modes in the sense that it could be used as a Pad and as a classic PC as well. Which means: Put the Pad on a table, connect a keyboard and mouse and use it as a classic PC for Software development and Office.
The first mode would require the touch GUI (KDE Active Plasma) while the second mode would be best supported by the classic KDE desktop. Wouldn't that be nice to have?
http://pypy.org/compat.html mentions compatiblity according to the standard library. This is fine for (web) servers and command line applications.
But what about desktop applications? Can I (someday) take a PyQt or PyGTK code and compile it with PyPy without modifications?
No, unfortunately it is not "a bit silly". The content industry MUST finally get control over the Internet to survive. I am convinced they use SOPA etc. not to fight piracy at first but to ultimally destroy Youtube (Google) and other competitive independent video platforms which will surely make the whole movie industry obsolete in the future.
Why? Because even NOW private people have become high quality movie producers. The first movies with Star Wars quality have already been made by private enthusiasts. Look at:
http://en.wikipedia.org/wiki/Star_Wars:_Revelations
This movie is really competitive to the Star Wars series and was made 2005 - seven years ago! It is obvious that coming professional movie producers don't need middle men in the future at all.
I am not against the content industry but their attempt to use SOPA et.al. to do collateral damage by establishing a global censorship infrastructure which would ultimately destroy our precious fundamental human right of free speech cannot be tolerated at all.
I don't buy this. Any links?
How many developers can expect such rates in face of more than 250,000 apps in competition? I think only some big publishing houses would pay this big money because in the long run they would get their money back.
Smaller companies would never pay this rate because AFAIK the average income for even very good apps is the range of some thousands or some ten thousand dollars. In case of say 10.000 dollars, all the money would be lost to the developer for just 40 hours of work, that's four days :-)
I looked around the links but unfortunately there wasn't any stellar constellation software. Could anyone recommend an open source software which is able to compute constellations (visible from earth) of arbitrary history which absolute accuracy?
http://uk.youtube.com/watch?v=a9xAKttWgP4&fmt=18
I didn't count the number of lines but I guess it's even less than ten.
When your first language you learned was C++ or Java then you tend to use the same programming strategies in other languages which probably don't fit at all.
It is not enough to know a language, you have to really KNOW it :-)
I also disagree.
> C++ is a massive language that virtually nobody understand in full.
A professor (expert in C++) told me that there is not even a formal standard of C++.
I believe C++ developers make things so complicated because C++ itself is complicated. They only know C++ and hence this is the natural way they think. They believe that C++ can solve every problem (which is true, as for almost every other language) and some of them are so arrogant to claim that C++ is above everything else and that they don't need anything else. The latter could also be true, but the problem is: Whoever knows only a hammer as a tool sees every problem as a nail :-)
When you are a C++ developer but also know Lisp, Python etc. then you will write your C++ code in a different way that uses better paradigms. They are provably superior because C++ itself is learning from them and copying features, see C+11: http://en.wikipedia.org/wiki/C%2B%2B11
Unfortunately the horrible syntax of C++ remains. It was extended from C to C++ in such a way that it still reflects the underlying von-Neumann architecture. That makes C++ code so performant. Functional languages are not so performant because they prefer power of expression over von-Neumann compatibility. But they are catching up, see ATS in http://shootout.alioth.debian.org/u64q/which-programming-lan...
http://www.apl.jhu.edu/~hall/Lisp-Notes/Macros.html
And here an insightful statement of someone who was sceptical but became a Lisp convert:
http://www.defmacro.org/ramblings/lisp.html
Lisp is so different from all other languages that you have to use it to understand it. Just reading about it is not enough.
Note that there are many variants of Lisp. Older Lisp versions are suitable for experts only. For beginners I would recommend Scheme which is a well defined successor of Lisp. I would recommend Racket (http://racket-lang.org/) as SDK. It is suitable for beginners as well as for professional development.
Lisp requires a new way of thinking - in recursion, lambdas, mapcars etc. - to write good code which reflects the awesome abilities of Lisp. Unfortunately many people don't grasp it. They don't want to think or to learn superior ways if they just can use a language which makes them able to solve their problem. The way to the solution doesn't matter a lot if the solution itself works.
Btw the same phenomenon happened with Ada. The Ada 95 language is awesome. I admired it, it was real fun to use it. But average programmers are simply overwhelmed. That's the reason why Ada died.
Many people also complain about Unix and Linux but if you take the effort and learn it seriously you will love it.
What happened through the Opensource movement is beginning to repeat in the movie industry. Twenty years ago Big Blue, Cray et.al. laughed at Linux and GNU. Now Linux has gained world domination in the mobile market (Android), and now Linux is leading the TOP 500 supercomputer list.
http://www.top500.org/list/2011/11/100
I think the same phenomeon is starting right now in the movie industry. Private people produce massive amounts of short movies with low quality. But in the long run I believe they will produce high quality movies which will eventually compete with Hollywood standards.
With suitable software and upcoming PCs with multicore processors and possibly TB of RAM it is not an illusion that even a single person could produce movies which match Hollywood standard.
Look at StarWars Revelations. This video was produced in 2005: http://en.wikipedia.org/wiki/Star_Wars:_Revelations
Because they ... just work? :-)
I participated in a lobbyism against EU wide software patents some years before. Serious lobbying works in the sense that you contact EU people and tell them your complaints with solid facts in a respectful way. Then they get serious and pay attention to you.
Without the massive lobbying of many small and medium sized companies and freelancers against Software patents the EU would have invented them already years before.
This made Unix so reliable. If you want to write a beautiful terminal as _addon_ I have no problem with that. But I would not accept a _replacement_ of the old fashioned terminals. Because they are so simple, they just work.
http://www.shenlanguage.org/Documentation/index.htm
It supports Lisp, Scheme and Javascript as backend.
It's not about writing the same algorithms in less code but about the way you design them. When you write Lisp code the same way as say Java or C++ then it's likely that you won't have less code.
Lisp changed the way how I write programs. THAT makes the difference. For instance, in Java or C++ I write a loop to apply a function on a data collection. In Lisp I just use a map function for those elements. In Lisp it's very usual to use macros to shorten code. These macros have NOTHING to do with the harmful C++ macro system. They are just functions to create well structured code.
Python copied list comprehensions from Lisp. This is a good example how a Lisp fesature makes code way shorter.
Quick research: http://racket-lang.org/ http://planet.racket-lang.org/ (the "CPAN" of Racket) http://en.wikipedia.org/wiki/MongoDB http://docs.racket-lang.org/continue/index.html (web apps) https://github.com/dmacdougall/spin (RESTful web apps) http://en.wikipedia.org/wiki/Datalog
The shell commands of Racket could be used for (native compiled) batch files.
Some real world applicatons: http://www.mail-archive.com/users@racket-lang.org/msg07436.h...
The only thing I miss is a sophisticated GUI editor like in Delphi Pascal. MrEd is similar but only supports the basic GUI components (labels, buttons, ...). I hope composed components (tables ...) will come in future.
It's funny that all these modern languages have copied - and are still copying - features which Lisp had for decades.
I know really many programming languages but the power of Lisp is still superior. I can express myself in much less code than in all other modern languages. Python is an exception but that's no surprise because Python is just a subset of Lisp with a modern syntax and clean API.
Regarding Javascript, I think it will be the top language of the coming decade because it offers everything the average programmer needs: easy syntax, many APIs and even speed (Google V8 etc.). Even Microsoft supports Javascript. I also believe that many of the other languages will provide backends for Javascript soon.
Unfortunately I don't have time to dive into your design but AFAIK the GA144 doesn't need 30% preparation code because every instruction can be executed immediately by neighbor nodes.
That means (correct me if I am wrong) if core X has to evaluate a Forth function of say five arguments then it could pass all five arguments to its neighbors (without any preparation) by sending them the code addresses of the arguments, wait until they have finished and then use their results to compute the function result. These neighbor nodes themselves could evaluate (or delegate) subexpressions to other (free) nodes and so on.
This form of parallelization would require an efficient shared memory access. This problem needs to be solved because AFAIK I/O ports are accessible by the edge cores only. It doesn't make much sense to transport each shared data through several columns or rows of cores.
The GA144 is so different from the classic way of computing that it requires new approaches of development. One very interesting feature of GA144 is that all 144 cores can share instructions over I/O lines. That means every core can send instructions to their neighbors who execute them directly without conversion.
I/O ist fast enough. I guess it should be possible to have (someday) an external interface to SRAM which circumvents the low memory problem.
> They offer no compiler from high-level language like C.
That's right, and that's the real weak spot of GA144. Almost every microcontroller board today comes with C or alike. Mr. Moore loves Forth but I doubt that there are many developers out there who like to be forced to learn Forth just for this single platform. I know Forth, it was one of my first languages I ever learned. It is perfectly suitable for embedded systems but you have to learn a lot to master it.
http://planet.racket-lang.org/package-source/jaymccarthy/c.p...
Plugin Database: http://planet.racket-lang.org
Why do you want to hurt yourself typing TeX on a virtual keyboard? If you consider to add a real keyboard to your ipad then you should better get serious and use a Macbook, Linux or Windows.