5 ms·
Hi, I created Mu. Happy to answer any questions you may have. :-)
by ntoll 8y ago
Hi, I created Mu.
Happy to answer any questions you may have. :-)
- severine 8y agoHi, congrats and thanks! What's been your rationale when deciding what are the most essential features? Do you envision Mu as being someone's learning-to-code editor, then "graduating" to one of the big players or you think one can "grow into a programmer" and keep "living" in Mu? (edit: the 2nd question is answered here: https://codewith.mu/en/tutorials/1.0/moving-on https://codewith.mu/en/tutorials/1.0/moving-on)
- ntoll 8y agoThank you! The rational for deciding features is three-fold: * A positive answer to, "is it going to make it easy for a beginner to write, execute and change code?" is the first requirement (we check this with user research -- I've observed lessons, code clubs and other beginner-related activities as well as interviewed teachers and learners to find out how they react). * Alternatively, we checked the features the Raspberry Pi Foundation had feedback about. For instance, the zoom in/out buttons were one of the most requested features from teachers in feedback to the RPi education team. When I demoed this to teachers for the first time there were gasps of amazement (which made me smile, given what a simple / easy to implement feature this is). This is extraordinarily useful in a classroom situation and for learners who may have a visual impairment (such as older learners with bad eyesight... a group I had never initially thought would want to learn... but hey... I rather like the idea of Granny coding Python). ;-) * Can we demonstrate an obvious progression from Mu's (simple) implementation to a similar feature in an editor to which the user is likely to graduate? For example, the visual debugger is very simple, but looks similar enough to a "proper" debugger in a professional IDE that a beginner graduating to such an environment won't feel out of their depth. Once a feature is "in" a lot of time and effort is spent making it as simple yet useful as possible. This is likely to be the first time someone will have used such a feature and we need to ensure that the intention is clear, the use is obvious and the outcome useful from the perspective of the learner/teacher. We also have a "rule of three" when it comes to "nice to have" features... if three people independently ask for something we try to implement it (a good example being toggling on/off of commenting).
- albertzeyer 8y agoLooks very cool from a first glance! As it was mentioned in another comment, its hard to find a link to the source code of this, or even to get the information, whether this is open source, and what licence. (Answer: https://github.com/mu-editor/mu/ https://github.com/mu-editor/mu/, licence is GPLv3). For some people, this is some of the most important question before they would try out a new app. Also, one detail which was hard to find, but interesting for me: This is build using PyQt5. About the MacOSX package: It's about 430 MB. This is a lot for such a simple editor. Is this just because of PyQt5 which is bundled together with it? Isn't it possible to strip that down? I would have expected something like 5 MB or so. Also, another question: Is it possible to have this bundled into another existing app? E.g. I have an app where the user could write simple Python scripts to automate something (e.g. the smart playlist logic in a music player), and I was wondering whether I can have a simple editor just inside the app. However, your licence is problematic for this usage, as my apps usually have a BSD or MIT licence or similar. Maybe consider to use LGPL?
- lordmauve 8y agoMu uses the QScintilla editor from https://pypi.org/project/QScintilla/ https://pypi.org/project/QScintilla/, which is GPLv3.
- ntoll 8y agoAnd it should be mentioned that @lordmauve was a collaborator in Mu's development, without whom it wouldn't exist. (Cheers Dan... hope you're enjoying the t-shirt...) ;-)
- carlosperate 8y agoI think he was actually wearing it yesterday when he wrote that message!
- ntoll 8y agoThese are great questions... briefly: * Licensing - if you use one of the installers (for OSX or Windows) you're presented with the GPL3 as part of the installation process. * Mac OSX package (and to the same extent, the Windows installer) - Mu comes with everything bundled in so you don't have to mess around installing a bunch of stuff to make it work. We did it this way after asking for feedback from school network administrators who always said some variation of "make my life as simple as possible". Mu is only just less than 4k lines of Python so, you're right in thinking that the rest of the installer is Qt and a bunch of other stuff (like Tk/tkinter, needed for Python's turtle module to work, something many teachers have told us they need). We also bundle PyGame, iPython, Matplotlib, Numpy etc etc... so they're just there by default if you simply install Mu. In this sense, Mu is a sort of "instant Python for education" (just add learners). ;-) * Bundling - I'm happy for Mu to be bundled if this were useful to another project although I guess this depends upon what use case you're thinking of. For example, Mu is already "bundled" (in a sense) in Raspbian as a recommended package. If in doubt, just reach out.
- tixocloud 8y agoI love how clean the interface is. What makes it right for beginners? Are there some special features that you’ve taken out or put them in that would help a beginner?
- ntoll 8y agoI took the RPi education team's feedback as a starting point and spent lots of time watching, testing and working with teachers and beginners to work out what works best given a context with beginners and/or teachers trying to deliver classes. This is but a start and I expect Mu will evolve as computing education matures (hopefully) beyond the current state of affairs.
- tixocloud 8y agoThanks for sharing your approach (saw your background on music) which is fascinating and absolutely agree that there could be things we could pluck from music education into computer education. I’m also based in the UK and am exploring how to advance data science education - your ideas have gotten me thinking.
- ntoll 8y agoHappy to chat further if you ping me via email (ntoll.org/contact)
- mynewtb 8y agoWhen should I use Mu instead of Thonny?
- ntoll 8y agoWhen should you listen to Jazz, Rock or Classical? Your choice. I don't know much about Thonny, but I hear good things about it.
- jesperlang 8y agoThis looks great! I was looking for something similar to Dr Racket but for python. I am going to use this in a beginner's course in programming for high school students. I guess you have already seen this article: http://worrydream.com/LearnableProgramming/ http://worrydream.com/LearnableProgramming/ , any plans on getting some features there implemented? Especially seeing state/flow over time would be immensely helpful for beginners. The state inspector panel is good enough for now though! Another simpler thing that would be nice is to have some explanations when you hover on keywords/functions
- ntoll 8y agoI know Bret Victor's work very well - it's thoughtful, thought provoking and the sort of stuff that makes me go on long walks to think further (a good thing). Regarding state/flow... that's partially handled by the visual debugger in Python3 mode (I explain this in a beginner friendly way here: https://codewith.mu/en/tutorials/1.0/debugger https://codewith.mu/en/tutorials/1.0/debugger). There could be lots of ways to do state/flow, but implementing a very simple debugger has the additional advantage of progression: it's a powerful tool coders will come to use with professional development environments as they grow in skill. I made the debugger very much with the Alan Kay quote referenced here (https://codewith.mu/en/about https://codewith.mu/en/about) in mind. FWIW, I'm actually a classically trained musician (I trained at the Royal College of Music in London and played professionally for a number of years), and spent most of my 20s involved in music education. Music education has so much to teach computing education (although I concede I'm probably biased in this opinion) and I wanted to ape the "do the real thing, but at the right level" approach music educators (like my wife) do. She's a cellist and often runs workshops with kids as young as 5 who want to learn to play a string instrument. The first thing she does? She gives them a real string instrument (although it may be a 1/4 sized violin or cello - it's still a proper instrument) and lets them play (in both fun and musical sense of the word). It turns out that if you want to be a musician, you have to learn to do things musicians do. Likewise, if you want to write software, it's probably a good idea to learn what software developers do. Having said that, I like the innovation and shift of perspective from people like Bret Victor, so as always, it's a balancing act. We want people to learn about the rules, traditions and history of [music|coding] so they can become effective participants in the current world of [music|code] but then we also want them to innovate, experiment and push boundaries. This sense of breaking rules should definitely be part of education. I hope this makes sense... :-)
- mlevental 8y agothe one thing that helps beginners immensely that i have only seen in pycharm is a workspace - i.e. all the live objects currently in scope. is such a thing possible with mu?
- Juerd 8y agoThanks for taking questions. It's probably just a coincidence, but did you know that Mu also happens to be the name of Perl 6's root type? https://docs.perl6.org/type/Mu https://docs.perl6.org/type/Mu
- tostitos1979 8y agoHey .. I just came across Mu in the context of the BBC Microbit. From a few days of hacking with it, I must say I am very impressed. The ability to flash code to the microbit, the automatic install of libraries .. I remember thinking "I'm going to get an error message now". When things just worked, I went wow!