quick! use lisp! before it's too late!

595 views
Skip to first unread message

pedb...@gmail.com

unread,
Aug 14, 2012, 9:46:59 PM8/14/12
to
Linus Torvalds flamed C++.
- http://article.gmane.org/gmane.comp.version-control.git/57918

Paul Graham said his company moved faster than its competition, because his company used Lisp.
- http://www.paulgraham.com/avg.html

Design Patterns are solutions to problems, but the problems shouldn't have happened in the first place.
- me

Use Lisp!

pedb...@gmail.com

unread,
Aug 14, 2012, 10:00:47 PM8/14/12
to
Computers have lots of cores now, so they need concurrent code and writing concurrent code is hard in C++, but easy in functional programming languages.

Ian Melven

unread,
Aug 14, 2012, 10:28:43 PM8/14/12
to pedb...@gmail.com, dev-pl...@lists.mozilla.org

have you seen http://en.wikipedia.org/wiki/Rust_%28programming_language%29 ?

thanks,
ian
_______________________________________________
dev-platform mailing list
dev-pl...@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Pedro Bessa

unread,
Aug 15, 2012, 2:24:29 AM8/15/12
to Ian Melven, dev-pl...@lists.mozilla.org
Ian,
Mozilla,

I thought all fast functional programming languages were
Lisp dialects, but that's not true and you can use other fast
functional programming languages, but now that you said
Rust, I think the programming language that you should use
must be ready for prime time, in other words, not alpha, so
Rust can't be used.

Do you have any other programming language in mind?

Best regards,
Pedro Bessa

Benjamin Smedberg

unread,
Aug 15, 2012, 2:40:31 AM8/15/12
to Pedro Bessa, dev-pl...@lists.mozilla.org, Ian Melven
On 8/15/2012 2:24 AM, Pedro Bessa wrote:
> Ian,
> Mozilla,
>
> I thought all fast functional programming languages were
> Lisp dialects, but that's not true and you can use other fast
> functional programming languages, but now that you said
> Rust, I think the programming language that you should use
> must be ready for prime time, in other words, not alpha, so
> Rust can't be used.
Pedro, are you trolling or serious? We are designing Rust to meet our
specific needs for a functional programming language because none of the
existing languages were suitable candidates, especially about native
compiled speed, C interop, and strong typesafety.

Rewriting our codebase in a functional language is not a short-term
operation: it's worth doing right.

--BDS

Joshua Cranmer

unread,
Aug 15, 2012, 7:12:40 AM8/15/12
to
Thank you for volunteering to rewrite all 7M lines of code. When should
we expect to see your new patches?

Tim

unread,
Aug 15, 2012, 7:22:11 AM8/15/12
to
Anyone got any nice ascii art trophies? 'Cause this is easily the post of the year. ;-) No comedy contest!

Pedro Bessa

unread,
Aug 16, 2012, 1:47:52 PM8/16/12
to Benjamin Smedberg, dev-pl...@lists.mozilla.org
C interop is a killer feature! I'm going to try changing a part of
the Firefox codebase from C++ to Rust.

Pedro Bessa

unread,
Aug 16, 2012, 5:33:53 PM8/16/12
to Benjamin Smedberg, dev-pl...@lists.mozilla.org
Em 15-08-2012 03:40, Benjamin Smedberg escreveu:
> On 8/15/2012 2:24 AM, Pedro Bessa wrote:
>> Ian,
>> Mozilla,
>>
>> I thought all fast functional programming languages were
>> Lisp dialects, but that's not true and you can use other fast
>> functional programming languages, but now that you said
>> Rust, I think the programming language that you should use
>> must be ready for prime time, in other words, not alpha, so
>> Rust can't be used.
> Pedro, are you trolling or serious? We are designing Rust to meet our
> specific needs for a functional programming language because none of
> the existing languages were suitable candidates, especially about
> native compiled speed, C interop, and strong typesafety.
>
> Rewriting our codebase in a functional language is not a short-term
> operation: it's worth doing right.
>
> --BDS
>
Since there's no functional programming language with the three
features that you mentioned, it looks to me like you'll have to go
with C or C++.

Chris Double

unread,
Aug 18, 2012, 3:41:03 AM8/18/12
to dev-pl...@lists.mozilla.org
On Fri, Aug 17, 2012 at 9:33 AM, Pedro Bessa <pedb...@gmail.com> wrote:
> Since there's no functional programming language with the three
> features that you mentioned, it looks to me like you'll have to go
> with C or C++.

There are a few functional programming languages that match those
three features. Obviously Rust is intended to be one. There's also
ATS, Haskell and O'Caml amongst others. I'm sure there are reasons
other than those three features for the development going forward on
Rust. Developing one's own language at least allows addressing the
question of what a language designed specifically for writing
applications like web browsers would be like.

--
http;//www.bluishcoder.co.nz

David Rajchenbach-Teller

unread,
Aug 18, 2012, 11:59:08 AM8/18/12
to Chris Double, dev-pl...@lists.mozilla.org
Speaking as a long-time OCaml user (and less long-time Haskell user),
there are a number of reasons that make me prefer Rust to OCaml or
Haskell for the scope of Firefox.

I do not intend to elaborate here on these reasons, but I will just
second Chris on this: developing Rust lets us ensure that it is the
right language for the task.

Cheers,
David
--
David Rajchenbach-Teller, PhD
Performance Team, Mozilla

signature.asc

Pedro Bessa

unread,
Aug 29, 2012, 2:17:51 AM8/29/12
to Ian Melven, dev-pl...@lists.mozilla.org
Design patterns solve a problem, but the problem shouldn't have existed in
the first place. Prototypal OO doesn't have the problems that traditional
OO has. Lua is fast, prototypal, has C interop and was used to create World
of Warcraft, the most financially successful game in history. How about
using Lua without inheritance and visibility, just prototypal OO?

2012/8/14 Ian Melven <ime...@mozilla.com>

>
> have you seen http://en.wikipedia.org/wiki/Rust_%28programming_language%29?
>
> thanks,
> ian
>
>
> ----- Original Message -----
> From: pedb...@gmail.com
> To: dev-pl...@lists.mozilla.org
> Sent: Tuesday, August 14, 2012 7:00:47 PM
> Subject: Re: quick! use lisp! before it's too late!
>
> Computers have lots of cores now, so they need concurrent code and writing
> concurrent code is hard in C++, but easy in functional programming
> languages.

Simon Kornblith

unread,
Aug 29, 2012, 3:37:15 AM8/29/12
to
On Aug 29, 2:17 am, Pedro Bessa <pedbe...@gmail.com> wrote:
> Design patterns solve a problem, but the problem shouldn't have existed in
> the first place. Prototypal OO doesn't have the problems that traditional
> OO has. Lua is fast, prototypal, has C interop and was used to create World
> of Warcraft, the most financially successful game in history. How about
> using Lua without inheritance and visibility, just prototypal OO?

How about JavaScript, which is paradigmatically similar to Lua but
with the distinct advantage that many components of Firefox are
already written in it? :-)

Pedro Bessa

unread,
Sep 29, 2012, 11:35:27 PM9/29/12
to Benjamin Smedberg, dev-pl...@lists.mozilla.org
Em 15-08-2012 03:40, Benjamin Smedberg escreveu:
> On 8/15/2012 2:24 AM, Pedro Bessa wrote:
>> Ian,
>> Mozilla,
>>
>> I thought all fast functional programming languages were
>> Lisp dialects, but that's not true and you can use other fast
>> functional programming languages, but now that you said
>> Rust, I think the programming language that you should use
>> must be ready for prime time, in other words, not alpha, so
>> Rust can't be used.
> Pedro, are you trolling or serious? We are designing Rust to meet our
> specific needs for a functional programming language because none of
> the existing languages were suitable candidates, especially about
> native compiled speed, C interop, and strong typesafety.
>
> Rewriting our codebase in a functional language is not a short-term
> operation: it's worth doing right.
>
> --BDS
>
Hi,

Lua is good in native compiled speed and C interop. Lua
has closures, prototypal OO, modules and I never heard
complaints about Lua's modules. I think you don't need
traditional OO, but If you experiment with no traditional
OO and it fails, Lua lets you have traditional OO and
choose between single or multiple inheritance.

Mozilla wants many more contributors to the Firefox
source code and Lua is like Javascript, so add-on authors
would find Lua source code familiar, so you can turn your
very many add-on authors into very many contributors to
the Firefox source code.

You should start writing Lua code, stop writing C++ code
and when your internal pressure makes you feel like
rewriting old C++ code in Lua, just do it.

The official C book is short. An official Lua book is short too
and the other official Lua book is a reference manual. If
you curious about Lua's art with OO, you can download or
buy Programming in Lua and Lua Reference Manual from
http://www.lua.org/docs.html

Best regards,
Pedro Bessa

Pedro Bessa

unread,
Sep 29, 2012, 11:40:56 PM9/29/12
to Benjamin Smedberg, dev-pl...@lists.mozilla.org
*You should experiment with no traditional OO
by making a policy to not use traditional OO.
Reply all
Reply to author
Forward
0 new messages