spdegabrielle
2019-8-5 07:56:24

Make an RFC for Notebook mode in DrR or Jypyter. #100 https://github.com/racket/racket2-rfcs/issues/100


spdegabrielle
2019-8-5 08:20:17

I posted it because it seems like notebook mode support is important in any new language. (Doubly so for LOP?)


yfangzhe
2019-8-5 10:48:02

Maybe it is not difficult for Racket? We have amazing GUI and plot libs, snips, eval and sandbox.


soegaard2
2019-8-5 11:06:28

@spdegabrielle The bits and pieces are certainly there. Here is a screenshot from one of my abandoned projects.

If anyone wants to try it, open the file “racket-cas.rkt” in DrRacket and hit run. https://github.com/soegaard/bracket/blob/master/gui/racket-cas.rkt

Note: The CAS in the repo racket-cas is not used here. Unfortunate naming clash.


soegaard2
2019-8-5 11:10:04

The left shows an editor (text%) in which the math boxes are snips.


spdegabrielle
2019-8-5 12:01:26

@soegaard2 Thank you - I assumed that would be only math like wxmaxima and didn’t even think of it. (I think I’m wrong about wxmaxima too - I think you can use SBCL)


spdegabrielle
2019-8-5 12:02:04

soegaard2
2019-8-5 12:04:06

Here in Denmark there are 3 programs competing over being “the math program” for high school.


soegaard2
2019-8-5 12:04:30

Maple: Which uses a notebook approach.


soegaard2
2019-8-5 12:05:54

NSpire: Which divides the screen into a number of workshops. One could be a text editor with math boxes, another a plotting window, another a spread sheet.


soegaard2
2019-8-5 12:06:27

WordMat: Which is a plugin for Word. It uses Maxima in the background.


soegaard2
2019-8-5 12:07:15

Word(Mat) gives the best output.


soegaard2
2019-8-5 12:08:00

NSpire has the best experimental features. If you redefined a value in one window, then plots and spreadsheets update in the other.


soegaard2
2019-8-5 12:08:57

Maple has the most mathematical features, but has too many features for a beginning high school student.


spdegabrielle
2019-8-5 12:23:50

@soegaard2 as far as the UI is concerned there seems to be a spectrum between the sequence of cells approach like jupyter notebook, and a more document centric approach where you can embed the cells in a document.


spdegabrielle
2019-8-5 14:12:49

soegaard2
2019-8-5 14:13:10

No.


soegaard2
2019-8-5 14:14:49

Bracket (horrible name needs rebranding) was an attempt to write an nspire-inspired math program. It contains some numerical functions, an engine for algebraic expressions and a “gui”.


soegaard2
2019-8-5 14:15:32

On the other hand, racket-cas was born from an experiment on rewriting the symbolic engine using match expanders.


soegaard2
2019-8-5 14:17:26

Well, the gui was inspired by NSpire, but the CAS was inspire by Mathematica.



spdegabrielle
2019-8-5 14:22:17

I need to look closer to see if (a) other types of code boxes can be extended to support #langs in addition to expressions? (b) it can be turned into a DrRacket Plugin?


stefan.kruger
2019-8-5 19:13:40

@stefan.kruger has joined the channel


nyakov13
2019-8-5 20:20:28
  1. If new futures is braking things but also provide some REAL advancements then they pay for themselves.
  2. If new futures brakes things and does not bring real improvements to the level that people will be willing to use this new futures instead of broken functional, than perhaps this is not an improvements at all.
  3. When something with nameit2 appears, nameit1 became MOMENTARILY obsolete. It is basic psychology, and common sense. Why I should invest my time to old technology? And when a lot of people asking this why, and actually not planning to invest, then why I should still use it in any sort?
  4. I just spend a year of my life learning Racket, and now I putted into perspective that all this knowledge can became obsolete in near future because parentheses is not mainstream enough? Is this the promised mature and stability? Or this is batteries?
  5. I am not pleased at all, I see the same concerns in other people. This is not what can be solved by maintaining legacy infrastructure. It is not a technical problem.

spdegabrielle
2019-8-5 22:14:43

spdegabrielle
2019-8-5 22:22:38

@nyakov13 I appreciate your concerns but I don’t think this is anything like perl or python 2->3 or java, or vb6->vbnet. parts of racket are still runnin mzscheme code https://github.com/racket/drracket/blob/master/drracket/drracket/private/tool-contract-language.rkt


notjack
2019-8-5 22:33:01

python2 -> 3, Java language levels, and vb6 -> vbnet all had major difficulty because upgrading meant using a different VM. Racket2 will not require that.


krismicinski
2019-8-6 00:29:47

@nyakov13 have you read Matthew Flatt’s original email about racket2? It clarifies that Racket2 will not be the ultimate name. I think it’s worth a read if you have time, since it seems like that email addresses some of your other concerns, too. Perhaps that addresses this comment: > 3. When something with nameit2 appears, nameit1 became MOMENTARILY obsolete. It is basic psychology, and common sense. Why I should invest my time to old technology? And when a lot of people asking this why, and actually not planning to invest, then why I should still use it in any sort?


krismicinski
2019-8-6 00:38:25

Also, with Python2 and Python3 the plan was to deprecate Python2 from the start, yes? (For what it’s worth I can understand people’s frustration if they’re looking at it through that lens.)


notjack
2019-8-6 01:02:48

Yes, that was the plan. I don’t think we’re in quite the same situation there either.


tgbugs
2019-8-6 01:19:59

With regard to long term support for old codebases, I can relate a recent experience, which is that I have been porting the plt-scheme side of a 14 year old c++/scheme hybrid codebase that uses racketcgc because it was written before the module system existed. It runs on 7.4 after making a few changes for if -> when, () -> ’(), and a couple other things. We can’t use many of the fancy new features like modules because of how the FFI was written, but that has to do with the decisions that were made when developing the original c++/runtime interaction.


tgbugs
2019-8-6 01:20:19

Since nearly all the fancy new racket functionality has has been added as libraries or #langs anyway


tgbugs
2019-8-6 01:26:21

it seems to me that Racket is in a position where the only limitation if any is in the runtime itself (full unwind-protect support being one example of a runtime feature that schemes in general have struggled to implement), everything else is basically aesthetics around what features of the runtime you want to support in your language, #lang racket/base seems like it is going to remain virtually unchanged as it has for the past many years already


ghoetker
2019-8-6 05:09:02

@ghoetker has joined the channel