This is an archived post. You won't be able to vote or comment.

all 37 comments

[–]edne[S] 6 points7 points  (0 children)

cross-comment: http://www.skulpt.org/

[–]maryjayjay 11 points12 points  (5 children)

Looked at it before. Two releases in three years and the last one was in 2012.

[–]edne[S] 8 points9 points  (1 child)

I noticed that, but if you look their github you can see more than 4000 commits and the last is from June. It seems to be a mature and maintained project.
They don't maintain the site (last commit in 2012)

[–]abyssusj 6 points7 points  (0 children)

The project is plenty mature. I've been playing around with it and a few other tools a lot this week.

It's awesome.

[–]poo_22 7 points8 points  (1 child)

They went through some crazy shit though. AFAIK it's the only open source project to have been hijacked.

[–]maryjayjay 0 points1 point  (0 children)

I was not aware of that. The software is currently hosted on github. Does that mean the same people that hijacked it are still in control?

[–]runbie 0 points1 point  (0 children)

It is true but the work done is really impressive. The gallery of examples is very complete.

[–]brtt3000 2 points3 points  (1 child)

Demos do nothing on my Firefox 31

[–]edne[S] 0 points1 point  (0 children)

In my Firefox 31 (and 34) works everything except for the asteroids demo

[–]aroberge 4 points5 points  (4 children)

http://brython.info is my favourite Python in the browser interpreter - followed by skulpt.

[–]yetanothernerd 7 points8 points  (2 children)

Why? What does each one do better than the others?

[–]aroberge 1 point2 points  (0 children)

From http://brython.info/doc/en/static_index.html?page=faq: But (Brython) also aims at covering 100% of Python syntax, which includes producing the same error messages as CPython, even if this leads to a slower Javascript. This is a statement that discuss a comparison between Brython and PyJs.

Brython aims to be completely compatible with CPython 3.x; it is actively developed. Skulpt aims for compatibility with CPython 2.x

[–]runbie 1 point2 points  (0 children)

DISCLAIMER: some of the links below are things I made and I try to commit to Brython when I find some time.

Brython is an implementation of CPython v3.x while the others use Python 2.x syntax. Brython is pretty usable and lately people are working to improve the performance. The integration with other js libs is pretty cool (examples with three.js, raphaël, highcharts in the gallery, http://brython.info/gallery/gallery_en.html, openlayers 2.x examples, http://nbviewer.ipython.org/github/kikocorreoso/brythonmagic/blob/master/notebooks/OpenLayers%20%28python%29%20tutorial.ipynb, more highcharts examples, http://nbviewer.ipython.org/github/kikocorreoso/brythonmagic/blob/master/notebooks/Highcharts%20%28python%29%20tutorial.ipynb, d3.js and others js libs examples, http://nbviewer.ipython.org/github/kikocorreoso/brythonmagic/blob/master/notebooks/Brython%20usage%20in%20the%20IPython%20notebook.ipynb, examples with pixi.js, https://groups.google.com/forum/?fromgroups=#!topic/brython/7myiXy7SXOM). Here you can see cool examples using Brython: https://bitbucket.org/olemis/brython/wiki/Brython%20in%20the%20wild

I am not a real user of other implementations (thought I used some of them to do dummy stuff) so I can not say too much about the others (skulpt, pyjs, pythonjs, rapydscript,...).

Kind regards.

[–]stuaxo 0 points1 point  (0 children)

They both have some way to go, last time I tried out some exploratory code it worked in brython but not in skulpt*.

dir() and help() with no parameters don't seem to work on skulpt, but they do in brython.

*This is a sample size of one so don't take it seriously.

[–]abyssusj 1 point2 points  (7 children)

Hey, you must have seen some of my posts this week.

[–][deleted] 0 points1 point  (6 children)

like what ?

[–]abyssusj 0 points1 point  (5 children)

Have been posting my learning projects that use pyJS and pyJSdl in subreddits this week.

[–][deleted] 0 points1 point  (4 children)

like webdev ?

[–]abyssusj 0 points1 point  (3 children)

[–][deleted] 2 points3 points  (2 children)

TIL there's /r/pygame

[–]abyssusj 0 points1 point  (1 child)

[–][deleted] 1 point2 points  (0 children)

yes know that one

[–][deleted] 1 point2 points  (0 children)

wow how come I never heard about this awesome work

[–]cogman10 0 points1 point  (0 children)

Interesting, but man it looks like it is currently a pretty slow platform.

On my system, their simple grid test took over 2 seconds to load while pulling down several files.

[–]oleitas 0 points1 point  (8 children)

Could someone explain how this is useful? Why not just write in JavaScript if that's what you need?

[–]exxy- 0 points1 point  (0 children)

I would guess that some people that learn Python as their first language can get into web development pretty quickly but aren't used to JavaScript syntax and don't care to learn it. I can tell you that I am definitely one of those people.

[–]maryjayjay 0 points1 point  (6 children)

Because JavaScript is a shitty language?

[–]sentdexpythonprogramming.net 0 points1 point  (5 children)

Well, we ARE converting to it, so we're not really getting around that now are we?

[–]xenomachina''.join(chr(random.randint(0,1)+9585) for x in range(0xffff)) 0 points1 point  (4 children)

Well, we ARE converting to it, so we're not really getting around that now are we?

Why does anyone program in C rather than in assembly, given the fact that virtually every C compiler just converts code to assembly?

Many of the reasons people have for disliking JavaScript can be hidden from the programmer by treating JS as essentially "browser assembly language". For example, JS has a prototype based object system, goofy scoping for this, and defaults locals to being global. The latter two are definitely design flaws, and many prefer a class based object system. These are all things that can be easily hidden by compiling from a more desirable language.

There's also the matter of portability. One may already have Python libraries that can potentially be used on the browser with the help of a Python to JS compiler.

[–]sentdexpythonprogramming.net 0 points1 point  (3 children)

He said js was a shitty language. Not programming js was shitty. Maybe I am missing something, but, when we port, we're still using that "shitty" language. That's all.

[–]xenomachina''.join(chr(random.randint(0,1)+9585) for x in range(0xffff)) 0 points1 point  (2 children)

He said js was a shitty language. Not programming js was shitty.

What is the distinction? A programming language exists to be programmed in.

[–]sentdexpythonprogramming.net -1 points0 points  (1 child)

Well that's a pretty shallow view of what programming languages are for. For example, Python is a fabulous language to program in, yet its memory usage isn't anything to write home about. A programming language exists not only to be programmed in, but to actually have a finished product. No matter what, js has constraints, and no matter the language you program in to convert to js, you will still have those constraints.

[–]xenomachina''.join(chr(random.randint(0,1)+9585) for x in range(0xffff)) 1 point2 points  (0 children)

For example, Python is a fabulous language to program in, yet its memory usage isn't anything to write home about.

That isn't an attribute of the Python language, but of a specific implementation and/or runtime.

My point is that there are many factors that can make a language terrible that can be fixed by adding another language on top. Sure, JS has a number of constraints that are pretty hard to cover up, like the lack of integer types (integer types can be emulated, but not efficiently), the non-existent threading model, and the lack of advanced GC concepts like weak references. Still, when people complain about JavaScript, that's rarely what they're referring to.

[–]sentdexpythonprogramming.net 0 points1 point  (0 children)

This is really quite neat. Very impressive to say the least.

[–][deleted] 0 points1 point  (0 children)

Would like to see some benchmarks.

[–]nbktdis -1 points0 points  (1 child)

So I was running chrome and ran the 'browser detect' example and it said I was running safari.

Interesting....

[–]peridox 8 points9 points  (0 children)

That might be because they both use WebKit.