Janela Olá, mundo

22

Crie uma janela que diga olá mundo por dentro e nada mais. Você não pode ter nenhum botão ok ou cancelar dentro. Deve ser apenas uma janela simples que diz olá mundo. Não me importo com o conteúdo da moldura da janela ou com a aparência da janela, mas por dentro ela deve dizer olá apenas mundo.

Exemplo:
insira a descrição da imagem aqui

O menor código vence.

Edição: desculpe Johannes Kuhn a janela tem que realmente ficar lá, pode não fechar imediatamente. Eu não pensei nesse cenário e, como tal, não foi responsável por isso.

EDIT 2: Atualmente, temos 3 respostas empatadas (20 caracteres). Todas as sugestões de quem deve ser o vencedor são bem-vindas.

Quillion
fonte
1
A janela precisa ser grande o suficiente para exibir o texto quando ela aparecer ou é aceitável exigir que o usuário redimensione a janela?
Iszi
Ele não precisa ser grande o suficiente para exibir o texto, apenas precisa ser uma janela, ou seja, esse objeto com aparência de contêiner que possui texto e não fecha até que seja solicitado.
Quillion
Eu posso torná-lo tão curto quanto o de Sven, mas com os botões OK e Cancelar :(
Teresa e Junior
Parece que agora há uma resposta do Bash aos 19 anos.
Iszi 27/11
2
Posso fazer uma solução VB 6 com um rótulo com "Hello World"? 0 solução de código?
Cruncher

Respostas:

13

bater 20 19 caracteres

Obrigado @manatwork pelo espaço inútil depois -p!

read -pHello\ World

Em ação:

echo 'read -pHello\ World' >/tmp/helloworld.sh
chmod +x /tmp/helloworld.sh

Em seguida, clique duas vezes no gerenciador de arquivos:

insira a descrição da imagem aqui

E veja:

insira a descrição da imagem aqui

Tendo como shell padrão.

19 16

Como a pergunta representa apenas Olá Mundo e Nada mais , a janela precisa permanecer, mas nada como imprimir texto apenas uma ou mais vezes, acho que esse requisito de correspondência também!

yes Hello\ World

Existem apenas 16 caracteres.

echo >/tmp/helloworld.sh 'yes Hello\ World'

Com o mesmo procedimento, isso fornece:

insira a descrição da imagem aqui

F. Hauri
fonte
1
Parece o GNOME para mim.
Pierre Arlaud
2
Eu acho que a parte "escolher executar no terminal" deve contar como, no mínimo , 1 byte. Semelhante às regras sobre opções passadas para intérpretes ao executar alguma solução de codegolf.
28513 Bakuriu
1
@Bakuriu Dependendo usos pessoais, você pode configurar você gerenciador de janelas para não pedir e executar sempre sob algum shell ou terminal de sua escolha ... (acho padrão, ele está sob MS-Window)
F. Hauri
2
O @Bakuriu gosta de instalar o HQ9+intérprete, adicionando .hq9+como capacidade mime : rodar HQ9+nas janelas de um terminal . Portanto, o desafio pode ser reduzido para 1 byte. Esta resposta foi baseada em respostas anteriores, usando lote ou PowerShell e executando um sistema operacional que usa esse tipo de truque por padrão.
28513 Haitian F.Huri
3
@JohannesKuhn Você está louco! Não existe mais do que 2 ° C no exterior! Está frio demais!!
F. Hauri
23

Prompt de Comando do Windows, 26

echo Hello World>.hta&.hta

insira a descrição da imagem aqui

Danko Durbić
fonte
Isso é incrível. Pontos de bônus por gerar duas janelas?
Gusdor #
@Gusdor Como assim? Eu só vejo uma janela gerada aqui.
Iszi 27/11
@Iszi Assumi que o arquivo em lotes era executado na área de trabalho, não digitado. Ops!
Gusdor #
@ Gusdor Acho que foi por isso que ele chamou de "Prompt de Comando do Windows" em vez de "Lote". Caso contrário, perderia para a resposta de Johannes de qualquer maneira.
Iszi 27/11
1
@Iszi: Isso abre uma nova janela, então não importa se o comando está ecoado em outra…
Ry-
15

R, 23

plot(1,m="Hello World")

Isso abre uma janela de plotagem.

Sven Hohenstein
fonte
+1. No entanto, você pode reduzir sub=para s=a correspondência parcial.
plannapus
@ plannapus Obrigado, boa ideia! Eu modifiquei meu código.
Sven Hohenstein
Sven, isso não imprime "olá mundo por dentro e nada mais" :) Eu estava participando de um desafio semelhante e tinha que ser feito de maneira diferente, consulte codegolf.stackexchange.com/a/19807/2800
Tomas
1
@ Tomas Este desafio é diferente. Da pergunta: " Eu não ligo para o conteúdo da moldura da janela ".
Sven Hohenstein
Bem, mas isso não é sobre o quadro, mas também o texto - eixo "index" rótulo, os números etc ..
Tomas
14

Dyalog APL (20)

⎕SM←'Hello World'1 1

Cenário: Cenário

marinus
fonte
1
Caracteres especiais!?! HAXXX!
AJMansfield
11

Powershell, 23

'Hello World'>.hta;.hta

insira a descrição da imagem aqui

Danko Durbić
fonte
Agradável! Supera minha solução "real" e tem apenas 3 caracteres a mais que o método de atalho. No entanto, é discutível que isso não seja realmente muito melhor do que usar Hello Worldsozinho e chamá-lo de HTML - já que foi quase exatamente isso que você fez. Você acabou de usar o PowerShell para criar e executá-lo.
Iszi
11

HTML (tipo), 17

data:,Hello World

Cole isso na barra de endereço do seu navegador.

Javascript, 25

open("data:,Hello World")

Isso usa o navegador window.opene um uri de dados.

O tipo mime e o conjunto de caracteres de URIs de dados são padrão text/plain;charset=US-ASCIIquando omitidos.

Javascript, 19

eval($("s").text())

Este funciona apenas quando esta resposta é a resposta superior (ou aceita) e é executada na página ESTA stackoverflow (através do seu console JavaScript). :-)

aberto ("dados:, Olá Mundo");

David Murdoch
fonte
Truque engraçado. Mas, infelizmente, isso depende da ordem das postagens, que podem variar.
manatwork
1
Bem, ele vai trabalhar, desde que ele é a resposta aceita (e faz a pergunta não tem uma "<s>")
David Murdoch
Ri muito. Eu tenho que votar pelo seu otimismo.
manatwork
Você pode explicar como isso funcionará, por favor? Estou usando o chrome e tentei executá-lo no console, mas entendi Unexpected token ILLEGAL. Você tem que ser a melhor resposta para que isso funcione?
Quillion 27/11
Sim, ele precisa ser a melhor resposta para funcionar. Ou eu poderia apenas editar a pergunta em si para incluir o <s>open("data:,Hello World");</s>HTML necessário , mas isso pode estar enganando um pouco demais. :-p
David Murdoch
9

Matlab, 30 27 20

title('Hello World')

As janelas de plotagem são permitidas? Não possui nenhum botão dentro.

Sven Hohenstein
fonte
Sim janela do enredo é bom :) contanto que seja janela, eu não me importo #
Quillion
a figura ('nome', 'Olá Mundo') é menor
magu_ 27/11/2013
@magu_ Boa ideia. Mas suponho que seja contra a regra "uma janela que diz olá mundo por dentro ".
Sven Hohenstein #
1
@SvenHohenstein Hm, talvez. Para dizer pelo menos algo útil: você não precisa do (1) necessariamente. Tornando o código 3 caracteres menor.
Magu_ 27/11/2013
1
Na verdade, você não precisafigure;
Torbjørn T. 27/11
9

Java, 117 caracteres

import java.awt.*;class C{public static void main(String[]a){new Frame(){{add(new Label("Hello World"));show();}};}}

Com formatação:

import java.awt.*;

class C {
    public static void main(String[] a) {
        new Frame() {
            {
                add(new Label("Hello World"));
                show();
            }
        };
    }
}

Podemos evitar ter que declarar explicitamente uma variável usando blocos inicializadores dentro de uma subclasse anônima de Frame. Curiosamente, usando awt, são apenas tantos caracteres import java.awt.*;quanto qualificar apenas os dois nomes de classe.

Swilliams
fonte
8
Você pode ligar para argso que quiser; aé suficiente.
Daniero # 26/13
@daniero obrigado pela sugestão, muito bobo de me perder isso :)
swilliams
1
s/class/enum/
Thomas Eding
como @ThomasEding dicas substituindo a classe por barbas enum fora de um byte
masterX244
@ masterX244 Isso não estará sintaticamente correto, a menos que um ponto-e-vírgula seja adicionado antes do public static...final da lista de constantes de enum ... consulte stackoverflow.com/questions/7318011/… . Em ambos os casos, você acaba com o mesmo número de caracteres.
precisa
7

Mathematica 29 27 25

Com 1 byte salvo graças ao CatsAreFluffy.

DialogInput@"hello world"

hello world

DavidC
fonte
CreateDialogé mais curto.
alephalpha
Obrigado. Eu pensei que CreateDialog iria inserir um botão OK.
DavidC
DialogInputé 1 byte mais curto
CalculatorFeline
Sim, obrigado, e o aparelho também não é necessário.
DavidC
5

Shell, 32

xmessage -buttons '' Hello World
Hasturkun
fonte
1
Há uma maneira um caráter mais curto: xterm -e 'read -p Hello\ World'.
manatwork
Mina teria sido muito menor se eu não tivesse que -buttons '':(
Hasturkun
@Hasturkun, eu concordo, mas tive que adicionar se livrar do requisito dos botões, porque o javascript venceria com seu alerta ou algum outro atalho como esse, e achei que seria muito injusto e claro demais, especialmente para alguns outros idiomas.
Quillion 26/11/2013
@Hasturkun, sem a restrição de não botão, sua xmessage Hello Worldsolução conta apenas 20 caracteres, mas o Windows cmdo venceu com msg * Hello Worldapenas 17 caracteres. Portanto, seja grato pela restrição. :)
manatwork
5

Rubi com Sapatos , 28

Shoes.app{para'Hello World'}

Resultado:

screenshot

Maçaneta da porta
fonte
5

Python 2/3, 54 caracteres

Capitalize o t no tkinter para que ele funcione no Python 2.

__import__("tkinter").Label(text="Hello World").pack()
Ramchandra Apte
fonte
when I try that i get: AttributeError: Label instance has no attribute 'show'. However __import__("Tkinter").Label(text="Hello World").pack() gives me the desired effect.
plannapus
@plannapus Actually I had copied a previous version with that error, not the correct one. Thanks.
Ramchandra Apte
4

Windows Batch, 23

@pause|echo Hello World
  • Opens a black window that shows Hello World, nothing else.
  • Now the windows stays open
  • There are no buttons in the window.
Johannes Kuhn
fonte
2
Requirement is: create a window not force window manager to create a window
F. Hauri
4
@F.Hauri Ok, I'll look how to write a window manager. Until someone post that, consider all posts as violation of your requirement.
Johannes Kuhn
1
As the op states, it doesn't matter how the window looks. If it is a plot window or a shell window, who cares?
Johannes Kuhn
5
I absolutely agree :) now this is absolutely acceptable because it is a window and it does say hello world :) well done I love it
Quillion
1
@JohannesKuhn PowerShell can still beat it. Edit coming up.
Iszi
4

Rebol 2, 29

view layout[txt{Hello World}]

enter image description here

Izkata
fonte
4

ExtJS (Javascript) 44

new Ext.Window({html:'Hello world',}).show()

F. Hauri
fonte
3

Tcl/Tk, 34

pack [label .l -text Hello\ World]
Johannes Kuhn
fonte
3

AutoHotkey, 26

GUI,Add,Text,,Hello World!
Broseph
fonte
3

AutoIt v3, 32

ToolTip("Hello World")
Sleep(9^9)
Chris
fonte
Wouldn't MsgBox(0,"","Hello World") be shorter? It's 26 characters.
Mr. Llama
The requirements are to have no Ok or Cancel buttons within the window. The code you suggest has an OK button. :(
Chris
Ah balls, I missed that requirement.
Mr. Llama
3

HTML, 11

Hello World

Screenshot:

HTML Hello World

I guess this shouldn't count, but I think it would be interesting to see such an answer here.

Alvin Wong
fonte
3
I agree it shouldn't count. The same can be accomplished by loading a simple TXT file in the browser.
Iszi
Your count is off, that's 20 characters.
jmoreno
2
@Iszi without HTML tags, this is really just getting rendered as a plain text file. I would argue that you can't even call it an html submission without <html> </html>
Cruncher
@Cruncher Google Chrome actually adds an HTML skeleton including a <pre> which contains the file's contents (you can use Chrome dev tools for verifying this behavior).
ComFreek
1
@Cruncher Well, maybe if you're using IE6, but in any modern browser, you can omit the <html> tags, as well as the <body> and <head> tags, and the browser will automatically fill out the "skeleton". For example, try <div style="background:#ff0">Hello</div> in a modern browser, and it will universally render "hello" with a yellow background.
Braden Best
3

PowerShell: 162 124 114 or 20


The Long Way Around

($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()

Since PowerShell really doesn't have any built-in GUI functionality, I'm having a hard time coming up with anything shorter than this which I feel really fits the original spirit of the challenge. (Or, at least, fits within the parameters several of us have assumed were implied.)

enter image description here

Changes from original:

  • Removed window size definition. Apparently, it's optional and the default is plenty large enough.
  • Incorporated changes provided by SpellingD in comments. Note: The window which spawns will hang - you'll need to kill PowerShell via Task Manager.

Alternative 20-Character Approach

Removing some assumed-implied requirements, we can also meet this challenge a-la Johannes Kuhn with this:

'Hello World';for(){}

Save as a .ps1 file. Make sure the system's ExecutionPolicy allows unsigned scripts. Right-click and select "Run with PowerShell".

enter image description here

Iszi
fonte
Show instead of ShowDialog should do it, right?
It'sNotALie.
Show() does work, but doesn't let you close the window. Which isn't a requirement!
SpellingD
My edit to golf this was rejected, and my code isn't sufficiently different enough to warrant making a new answer, so here's how you could golf this to 114, I guess. ($t=($a='New-Object Windows.Forms')+".Label"|iex).Text='Hello World';($x=iex $a".Form").Controls.Add($t);$x.Show()
SpellingD
@SpellingD Thanks. I've incorporated your changes to the "true" solution, and also added a "cheap method" which currently beats all contenders. (Except, arguably, HQ9+ of course.)
Iszi
3

Factor, 36 code + 23 imports = 59

USING: ui ui.gadgets ; "Hello World" <label> "" open-window

When this is run inside the listener, the imports will be brought in automatically. You only need them to deploy a standalone executable.

Jon Purdy
fonte
2

Groovy, 68 27

Using console.

print"Hello World";for(;;);

Using Frame.

new java.awt.Frame(){{add new java.awt.Label("Hello World")}}.show()

Inspired by @swilliams Java answer.

FGreg
fonte
2

Processing, 37 chars:

void draw(){text("Hello World",0,9);}

Various things used to reduce strokes:

  • Sketch window is spawned by default; no need to manually create it
  • Using draw is shorter than setup (although the text is then redrawn each frame)
  • Uses default size, background, fill, font, and font size
  • You don't actually need all 10 pixels height for the text
AJMansfield
fonte
2

Bash (36 chars)

xmessage -buttons "" "Hello World!"

Looks like crap, but works as requested.

enter image description here

klingt.net
fonte
The rule “inside it must say hello world only” was explicitly added to avoid so simple solutions.
manatwork
ok, fixed this.
klingt.net
Now it's correct, but there is another problem: it became duplicate of Hasturkun's answer.
manatwork
1
Damn, at least i've a screenshot :)
klingt.net
2

Ghostscript 50

0 0 moveto/Courier 20 selectfont(Hello World)show

Could make it 49 by using a 9-point font, but it's a little hard to read.

Can make a smaller window by invoking gs with a geometry argument for an additional 8 chars.

gs -g200x30 hello.ps
luser droog
fonte
2

C#, 72

class P{static int Main(){System.Console.Write("hello world");for(;;);}}

Based on the answer by @Noctis. I would have suggested it as a comment if I had enough Rep.

Johnbot
fonte
2

Delphi - 73 62

uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.

Edit after @manatwork and @Gareth 's suggestions. Which actually brings me to a character count of 62.

R-D
fonte
How you get that character count? The code you posted has 77 characters and the minimum to which it can me reduced is 64: uses Dialogs;begin MessageDlg('Hello World',mtCustom,[],0)end.
manatwork
1
You need to count newlines as part of your character count. That's why many answers on this site are all on one line.
Gareth
Ah, I didn't know that. I'll edit my answer.
R-D
2

Shell script: 56 character

convert -size 99x9 xc: -draw 'text 0,10 Hello\ World' x:

Sample output:

Hello World

manatwork
fonte
2

Ti84-Basic, 25

ClrHome
Disp "HELLO WORLD

Arduino, 27

Serial.print("Hello World")

Place this in void setup()

Game Maker Language, 40

show_message_ext("Hello World","","","")

I'm pretty sure this is the shortest way without adding any extension packages.

Timtech
fonte
If you would accept an OK button, show_message("Hello World") is 27 characters.
Timtech
Extremely necroing this one, but I have 2 (slight) remarks about your Ti84-Basic one. 1: couldn't you drop the final "? 2: Should you count it in bytes, we have a clear winner here ;)
ɐɔıʇǝɥʇuʎs
@Synthetica Yeah. Forgot that :)
Timtech
Your TI-BASIC answer does not open a window, and it outputs capital rather than lowercase letters.
lirtosiast